2

我正在使用signpost lib将一个android应用程序连接到Rails Oauth 2.0 Provider。每次我登录时,必须通过网络浏览器启动该应用程序。有没有办法避免?

4

1 回答 1

2

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


编辑:

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

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

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

  1. 实际上,您没有正确缓存访问令牌(或者它已损坏)
  2. 您的令牌在您登录后不久就变得无效(也许它的有效期很短)
  3. 您的实现错误地将您带到登录页面,而实际上,它不需要
  4. 您的实现错误地请求了一个新的访问令牌(从而使前一个无效 - 我有这个特殊的错误让我在我的应用程序中被难住了数周)

在这个阶段,我认为您需要发布一些代码,以便我们可以尝试查看问题可能出在哪里。

于 2011-08-19T15:25:15.900 回答