我正在实现一个Android应用程序,它必须包含用户登录。为此,我创建了自己的验证器,目的是只登录一次。然后AccountManager可以请求访问令牌,因此应用程序不直接处理密码。AccountManager存储用户帐户和令牌。
我使用JWT(Json Web Token)在REST API中对用户进行身份验证。
我想知道这个流程是否正确,或者在Android中是否有更好的方法来做到这一点。
以下是我目前使用的流程:
1.用户第一次在登录界面输入用户名和密码。
1.我向服务器请求检索存储在帐户管理器中的有效令牌(JWT)。
1.随后的请求使用接收到的访问令牌,直到它过期(1小时),以从API检索内容。
1.令牌过期后,最多可在发行后两周内刷新。从这一刻起,需要用户凭证来检索新令牌。
此过程是否是使用令牌并刷新令牌的正确方法?这个过程安全吗?还有其他选择吗?
考虑到此流程不是使用“刷新令牌”来生成新令牌,而是使用访问令牌,那么Android帐户管理器的最佳用途是什么?我应该使用哪些其他工具?为了实现“刷新令牌”,是否建议在JWT中使用Oauth2实现?
干杯!
1条答案
按热度按时间83qze16e1#
我可以告诉你,你正在使用JSON Web令牌并复制它的正确道路上。
但你提到的安全性是所有关于加密令牌你检索,然后保存在帐户管理器(也与用户凭据相同)与一些加密方法您选择的AES或RSA,然后解密,如果你想使用。此外,使用服务器生成的秘密密钥和秘密算法将扼杀任何黑客的机会。
正如您所理解的,具有root访问权限的每个人都可以获得保存的凭据数据库并使用它。
使用这些技巧将降低使用涉及刷新令牌的Oauth 2.0的需要。
希望能有所帮助