【问题标题】:Scribe-java 1.3.3 How to remember a user?Scribe-java 1.3.3 如何记住一个用户?
【发布时间】:2013-03-19 01:06:37
【问题描述】:

我在我的 android 应用程序中为 OAuth2 使用 scribe 1.3.3。

我已经获得了与谷歌正常工作的完整流程,我可以请求用户信息并且一切正常。

我很好奇如果用户关闭应用程序如何让他们保持登录状态。目前,每次启动应用程序时,我都会提示用户允许访问。

我怎样才能让他们只允许访问一次,然后我只记得用户?

【问题讨论】:

    标签: android login oauth-2.0 scribe


    【解决方案1】:

    您不必记住用户。您所要做的就是记住您第一次获得的访问令牌。您可以将其存储在共享首选项中并使用它来签署新请求。

    因此,您的活动第一次开始时,您必须检查令牌是否已存储。仅当令牌为空时才要求提供凭据。另请注意,您的令牌可能会过期,如果您收到 401 错误,则必须重新对用户进行身份验证。

    PS:我将 scribe 封装在一个 android 库中,以使其更易于与 android 一起使用:https://github.com/fedepaol/PostmanLib--Rings-Twice--Android

    【讨论】:

    • 好的,我有两个问题:如何将访问令牌存储在共享首选项中。 (考虑到它不是字符串、int 或类似的东西)?如果我收到 401 错误,用户是否必须再次允许访问?
    • 我已经找到了第一个问题的解决方案。我的解决方案是将其序列化为json字符串,然后存储。
    • 访问令牌由三个字符串组成:public Token(String token, String secret, String rawResponse)。您可以将它们单独存储在 sharedpreference 中,也可以像以前一样将它们序列化。如果您收到 401 错误,则可能是令牌已过期。在这种情况下,您应该重新验证用户并获取新令牌(与您现在所做的相同)。
    • 我将 accessToken 信息(令牌、秘密、rawResponse)存储到数据库中,并在第二次登录时使用此信息检查,它工作正常。但是当我从浏览器中注销 gmail 时,accessToken 仍然存在,不会过期!你能写更多的建议吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2018-08-02
    相关资源
    最近更新 更多