【问题标题】:Implementing JWT authentication in Android using Account Manager使用 Account Manager 在 Android 中实现 JWT 身份验证
【发布时间】:2016-11-26 04:22:00
【问题描述】:

我正在实现一个 Android 应用,它必须包含用户登录信息。为此,我创建了自己的身份验证器,目的是只登录一次。然后 AccountManager 可以请求访问令牌,因此应用程序不直接处理密码。 AccountManager 存储用户帐户和令牌。

我正在使用 JWT(Json Web 令牌)在我的 REST API 中对用户进行身份验证。

我想知道这个流程是否正确,或者在 Android 中有更好的方法来做到这一点。

这是我目前使用的流程:

  1. 用户第一次在登录界面输入用户名和密码。

  2. 我向服务器发出请求以检索存储在客户管理器中的有效令牌 (JWT)。

  3. 后续请求使用接收到的访问令牌直到过期(1 小时)从 API 检索内容。

  4. 令牌过期后,最多可在颁发时间后两周内刷新。从此刻起,需要用户凭据来检索新令牌。

这个过程是使用令牌并刷新它的正确方法吗?过程安全吗?还有其他选择吗?

考虑到此流程不是使用“刷新令牌”来生成新令牌,而是使用访问令牌,Android 帐户管理器的最佳用法是什么?我应该使用哪些其他工具?是否建议沿 JWT 执行 Oauth2 以实现“刷新令牌”?

干杯!

【问题讨论】:

  • 您找到解决方案了吗?
  • @ezdookie 不,我只是按照我的描述实现了系统

标签: android rest oauth-2.0 jwt accountmanager


【解决方案1】:

我可以告诉你,你在使用 JSON Web Tokens 并复制它的正确道路上。

但是您提到的安全性是关于加密您检索到的令牌,然后使用您选择的某种加密方法(例如 AES)将其保存在帐户管理器中(也与用户凭据相同) RSA,然后在您希望使用时解密。此外,使用服务器生成的密钥和秘密算法会杀死任何黑客。

据您了解,每个具有 root 访问权限的人都可以获取保存的凭据数据库并使用它。

使用这些技巧将降低使用涉及刷新令牌的 Oauth 2.0 的需求。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 2014-05-02
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2016-12-28
    • 2014-07-03
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多