2016-07-22 121 views
4

我正在实现一个Android应用程序,并且必须包含用户登录名。要做到这一点,我创建了我自己的验证器,只需登录一次。然后AccountManager可以请求访问令牌,所以应用程序不直接处理密码。 AccountManager存储用户帐户和令牌。使用客户经理在Android中实施JWT身份验证

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

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

这是我目前使用的流程:

  1. 用户在第一次输入用户和密码在登录屏幕。

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

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

  4. 令牌过期后,它可以在发布时间后最多两周刷新。从这一刻起,需要用户凭证来检索新令牌。

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

考虑到这个流程并未使用“刷新令牌”来生成新的令牌,而是访问令牌,那么Android帐户管理器的最佳用法是什么?我应该使用哪些其他工具?是否推荐沿JWT实施Oauth2实施以实施“刷新令牌”?

干杯!

+0

您是否得到了解决方案? – ezdookie

+0

@ezdookie不,我只是按照我所描述的来实施系统 –

回答

1

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

,但你提到的安全性是所有关于加密检索到的令牌,然后在客户经理与您选择的像AESRSA和一些加密方式保存它(也与用户凭据相同)然后解密,如果你想使用。使用秘密算法使用服务器生成的秘密密钥会为任何黑客杀死该镜头。

正如您所了解的,拥有root访问权限的每个人都可以掌握已保存的凭据数据库并使用它。

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

希望它有帮助

相关问题