Twitter不记得授权

pet*_*ees 5 twitter oauth scribe twitter-oauth

我使用Scribe(OAuth1.0)作为一种机制,以便用户可以使用他们的Twitter帐户对我的GWT/GAE应用程序进行身份验证.

根据https://dev.twitter.com/docs/auth/implementing-sign-twitter,有3种可能的情况:a /用户已签名并获得批准.在这种情况下,Twitter应该将用户透视地重定向回我的应用程序URL,b /用户已登录但未授权,或者c/user未登录

当Twitter返回我的应用程序(回调)时,我使用verifier参数从twitter读取用户数据,我用它来确定我的应用程序中的用户.

所有这些工作正常,除了以下内容:

情景a /对我不起作用.尽管用户已经授权我的应用程序读取他的用户数据,但Twitter似乎不记得这一点,并再次要求授权访问.(方案b /).

mwi*_*but 10

twitter为请求OAuth令牌的应用程序提供了两个URL: /oauth/authenticate/oauth/authorize.当应用程序将用户定向到授权端点时 - Twitter会在用户登录时请求用户授权应用程序.该身份验证端点将请求授权一次,随后的所有日志造访Twitter将无缝直通到应用程序的回调.这更传统上称为"使用您的Twitter帐户登录".

在Scribe中,默认是授权 - 要更改此身份验证您需要两件事:

  1. 确保 在Twitter应用程序设置页面中选中允许此应用程序用于登录Twitter设置.
  2. 在您的应用程序中 - 当您指定要使用的Scribe API类时 - 而不是使用org.scribe.builder.api.TwitterApi.class将其更改为org.scribe.builder.api.TwitterApi.Authenticate.class

现在,您的应用程序将引导用户登录到/oauth/authenticate端点,如果他们至少已经授权您的应用程序一次,那么它们将被通过.

编辑: 其他文档 - https://dev.twitter.com/docs/api/1.1#102