我的应用程序的Twitter api授权

Twitter api authorization of my application

本文关键字:api 授权 Twitter 应用程序 我的      更新时间:2023-09-26

我正在使用这个twitter api库,到目前为止一切都很好。我的问题(好吧,这不是一个真正的问题,更像是一个用户体验)是,每次你想登录推特时,你都需要打开一个弹出窗口。

现在的流程是:

  • 用户点击我页面上带有twitter标志的登录
  • Javascript引发的弹出窗口显示了twitter Oauth的内容。若你们登录了,它只显示登录和取消。如果不是,它有登录字段
  • 如果一切都很好,它会转到我提供的回调url。做了很多事情然后
  • 我打电话给window.opener,传递经过身份验证的信息,然后关闭窗口

这非常容易实现,而且效果非常好。我想知道twiter登录过程是否可以更像facebooks,也就是这样。

  • 用户点击我页面上带有twitter标志的登录
  • 如果用户登录并自动授权了应用程序,弹出窗口将立即弹出并将用户数据放回我的页面

我确实意识到我正在为twitter使用php库,facebook流来自javascript端,但我想知道我是否可以用php检测用户是否已经允许该应用程序并已登录,以便他们绕过额外的登录/取消点击。

尝试使用;使用Twitter登录";流如果用户已经通过了身份验证,那么这是一个单击操作。上面链接的文档有流程图和流程描述,但我也会在这里列出步骤(添加重点),并在相关的API页面中链接:

"使用Twitter登录";是图案吗允许用户将他们的Twitter帐户连接到第三方服务只需点击一下。它利用OAuth和尽管流程非常相似授权URL和工作流不同如下文所述。

正常流量指示应用程序向oauth/authorize发送请求令牌在Twitter实现OAuth规范。利用的";使用Twitter登录";,应用程序应发送请求在oauth_token中接收的令牌oauth/authenticate的参数相反

oauth/authenticate方法将以不同的方式行事关于用户及其先前与呼叫的交互应用程序:

  1. 如果用户已登录进入twitter.com,并且已经批准了呼叫应用程序用户将立即通过身份验证并返回回叫URL。

  2. 如果用户未登录twitter.com,并已批准调用应用程序,用户将被提示登录twitter.com则将立即进行身份验证并返回到回调URL。

  3. 如果用户已登录twitter.com并且尚未批准调用应用程序,OAuth授权提示将为介绍。然后授权用户被重定向到回调URL。

  4. 如果用户未登录twitter.com,还没有批准了呼叫应用程序系统将提示用户登录twitter.com之前的授权提示重定向回回调URL。

希望这符合要求,对你有用。

我曾经在Facebook API上遇到过同样的问题,但通过检查API生成的cookie,查看其中是否有可能在用户登录时提供提示的条目,使其正常工作。我不确定Twitter的情况,但就Facebook而言,cookie的存在意味着用户已经登录了当前应用程序。由于它们都使用Auth,因此可能使用相同的过程。但我当然只是猜测。最好自己看看,确认一下。

顺便提一下,这个问题很好+1