如何在Android上避免Oauth 2.0回调

时间:2011-08-19 15:12:06

标签: android ruby-on-rails signpost

使用路标lib将Android应用程序连接到Rails Oauth 2.0提供程序。每次登录时,都必须通过Web浏览器启动来授权应用程序。有没有办法避免?

1 个答案:

答案 0 :(得分:2)

你没有说,但听起来你并没有缓存你的访问令牌和秘密。如果您将这些保存在共享首选项中,并在下次应用程序运行时使用它们签署您的请求,您应该可以跳过身份验证阶段并直接访问资源。


编辑:

感谢您的评论 - 一旦您的用户通过身份验证,您可以让他们在您的应用程序中输入PIN,然后您将交换访问令牌和密码,或者您必须使用实际上只发送PIN的初始回调在没有用户干预的情况下直接向您发送。

因此,如果您不希望用户必须手动输入PIN,则只需使用回调即可。只要令牌保持有效,您就永远不需要再次使用回调。

如果您每次登录时都被迫重新授权您的应用(正如您的问题明确指出的那样),那么我可以看到四种可能性:

  1. 事实上,你并没有正确地缓存你的访问令牌(或者它已经被破坏了)
  2. 您的令牌在您登录后很快就会变得无效(可能它的有效性非常短)
  3. 您的实施错误地将您带到登录页面,实际上,它不需要
  4. 你的实现错误地请求了一个新的访问令牌(从而使前一个令牌无效 - 我有这个特殊的错误让我在我的应用程序中难倒了好几个星期)
  5. 在这个阶段,我认为您需要发布一些代码,以便我们可以尝试查看问题所在。