我的申请的Twitter api授权

时间:2011-06-04 00:15:57

标签: php javascript jquery twitter

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

现在流程就是这样:

  • 用户点击我页面上带有twitter徽标的登录信息。
  • Javascript引发的弹出窗口出现了Twitter上的Oauth内容。如果您已登录,则表示登录并取消。如果你不是,它有登录字段。
  • 如果一切顺利,它会转到我提供的回调网址。做了很多东西然后......
  • 我调用window.opener并传递经过身份验证的信息,然后关闭窗口。

这非常容易实现并且效果很好。我想知道twiiter登录过程是否会像facebook那样更像。

  • 用户点击我页面上带有twitter徽标的登录信息。
  • 如果用户已登录并已自动启动应用程序,弹出窗口将立即弹出并将用户数据丢回我的页面。

我确实知道我正在使用一个用于推特的php库,而facebook流程来自javascript方面,但我想知道我是否可以使用php检测用户是否已经允许该应用并已登录,他们绕过额外的登录/取消点击。

2 个答案:

答案 0 :(得分:3)

尝试使用“Sign in with Twitter”流程。如果用户已经过身份验证,则只需单击操作即可。上面链接的文档有一个流程图和流程描述,但我将列出这里的步骤(强调添加),并链接到相关的API页面:

  

“使用Twitter登录”是模式   允许用户的身份验证   连接他们的Twitter帐户   只需点击一下即可获得第三方服务。它利用OAuth和   虽然流量非常相似,但是   授权URL和工作流程不同   稍微如下所述。

     

在   正常流量决定了应用程序   将请求令牌发送到oauth/authorize   在Twitter的实施中   OAuth规范。要利用   “使用Twitter登录”,   应用程序应发送请求   在 oauth_token 中收到的令牌   参数oauth/authenticate   代替。

     

oauth / authenticate 方法   会以不同的方式行事   关于用户及其状态   以前与调用的交互   申请:

     
      
  1. 如果用户已登录   进入twitter.com已经   批准了呼叫申请,   用户将立即进行身份验证   并返回到回调URL。

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

  4.   
  5. 如果   用户登录twitter.com   并且还没有批准   调用应用程序,OAuth   授权提示将是   呈现。然后授权用户   被重定向到回调URL。

  6.   
  7. 如果   用户未登录   twitter.com并没有   批准了呼叫申请,   系统将提示用户登录   twitter.com然后将呈现   授权提示之前   重定向回回调URL。

  8.   

希望这符合条款并适合您。

答案 1 :(得分:0)

我曾经遇到过与Facebook API相同的问题,但通过查看API生成的cookie来查看是否存在可能会在用户登录时提示的条目。我不确定Twitter但就Facebook而言,仅存在cookie意味着用户已登录当前应用程序。由于他们都使用Auth,他们可能会使用相同的程序。但我当然只是在猜测。最好先看看自己确认。

顺便说一下,这是个好问题。 1