使用客户经理在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的需求.

希望能帮助到你

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...