使用客户经理在Android中实施JWT身份验证
作者:互联网
我正在实施一个Android应用程序,必须包含用户登录.为此,我创建了自己的身份验证器,目的只需登录一次.然后AccountManager可以请求访问令牌,因此应用程序不会直接处理密码. AccountManager存储用户帐户和令牌.
我正在使用JWT(Json Web Token)在我的REST API中对用户进行身份验证.
我想知道这个流程是否正确,或者有更好的方法在Android中执行此操作.
这是我目前使用的流程:
>用户首次在登录屏幕中输入用户和密码.
>我向服务器发出请求,以检索存储在客户经理中的有效令牌(JWT).
>后续请求使用收到的访问令牌,直到它到期(1小时),以从API检索内容.
>令牌过期后,可以在发布时间后的两周内刷新.从此刻起,需要用户凭据来检索新令牌.
此过程是否是使用令牌并刷新令牌的正确方法?这个过程安全吗?还有其他选择吗?
考虑到这个流程没有使用“刷新令牌”来生成新的但是访问令牌,那么Android帐户管理器的最佳用途是什么?我应该使用哪些其他工具?为了实现“刷新令牌”,是否建议沿JWT实施Oauth2?
干杯!
解决方法:
我可以说,你正走在使用JSON Web令牌并重现它的正确道路上.
但是您提到的安全性都是关于加密您检索到的令牌,然后将其保存在客户经理(也与用户凭据相同)中,使用您选择的一些加密方法(如AES或RSA),然后在您希望使用时解密.使用服务器生成的密钥和秘密算法也会杀死任何黑客的镜头.
如您所知,具有root访问权限的每个人都可以获取保存的凭据数据库并使用它.
使用这些技巧将降低使用涉及刷新令牌的Oauth 2.0的需求.
希望能帮助到你
标签:rest,android,oauth-2-0,jwt,accountmanager 来源: https://codeday.me/bug/20190711/1430302.html