我的申请的Twitter api授权
我正在使用这个twitter api库 ,到目前为止一切都很棒。 我的问题(用户体验不是真正的问题)是每次你想用twitter登录时都需要打开一个弹出窗口。
现在流程是这样的:
- 用户点击我页面上带有twitter徽标的登录信息。
- Javascript引发的弹出窗口出现了Twitter上的Oauth内容。 如果您已登录,则表示登录并取消。 如果你不是,它有登录字段。
- 如果一切顺利,它会转到我提供的回调url。 做了一堆东西然后..
- 我调用window.opener并传递经过身份validation的信息,然后关闭窗口。
这非常容易实现并且工作得很好。 我想知道twiiter登录过程是否会像facebook那样更像。
- 用户点击我页面上带有twitter徽标的登录信息。
- 如果用户已登录并已自动化应用程序,弹出窗口将弹出窗口立即消失并将用户数据丢回我的页面。
我确实知道我正在使用一个php库用于推特和facebook流程来自javascript方面,但我想知道我是否可以用php检测,如果用户已经允许该应用并登录,为他们绕过额外登录/取消点击。
尝试使用“ 使用Twitter登录 ”流程。 如果用户已经过身份validation,则只需单击一次操作即可。 上面链接的文档有一个流程图和流程描述,但我将列出这里的步骤( 重点已添加 ),并链接到相关的API页面:
“使用Twitter登录”是一种身份validation模式,允许用户只需点击一下即可将其Twitter帐户与第三方服务相关联。 它使用OAuth,虽然流程非常相似,但授权URL和工作流程略有不同,如下所述。
正常流程规定应用程序在Twitter的OAuth规范实现中向oauth / authorize发送请求令牌。 要利用“使用Twitter登录”,应用程序应将oauth_token参数中收到的请求令牌发送到oauth / authenticate 。
oauth / authenticate方法将以不同的方式运行,具体取决于用户的状态以及之前与调用应用程序的交互:
如果用户登录到twitter.com并且已经批准了调用应用程序,则将立即对用户进行身份validation并返回到回调URL。
如果用户未登录到twitter.com并且已经批准了呼叫应用程序,则将提示用户登录twitter.com,然后将立即进行身份validation并返回到回调URL。
如果用户登录到twitter.com并且尚未批准调用应用程序,则将显示OAuth授权提示。 然后,授权用户将被重定向到回调URL。
如果用户未登录到twitter.com并且尚未批准调用应用程序,则会提示用户登录twitter.com,然后在重定向回调用URL之前将显示授权提示。
希望这符合法案,并将为您服务。
我曾经遇到过与Facebook API相同的问题,但通过检查API生成的cookie来查看是否存在可能在用户登录时提示的条目。我不确定Twitter但是在在Facebook的情况下,仅存在cookie意味着用户已经登录了当前的应用程序。 由于他们都使用Auth,他们可能会使用相同的程序。 但我当然只是在猜测。 最好先看看自己确认一下。
顺便说一句,好问题。 +1