Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在用户正确登录后在应用程序中使用JWT_Android_Ios_Jwt - Fatal编程技术网

Android 在用户正确登录后在应用程序中使用JWT

Android 在用户正确登录后在应用程序中使用JWT,android,ios,jwt,Android,Ios,Jwt,我目前正在为我工作的公司开发一个应用程序,它有一个用户名/密码登录系统。但我仍在决定在用户登录后,该应用程序的最佳方案是什么,以保持其登录状态 看起来很有希望,但该应用程序的用户有时会在较长时间(2周以上)内不访问该应用程序。JWT应该有有效期(让我们保持这种方式)。但是,即使用户的JWT在应用程序中过期,还有什么好方法可以让用户保持登录呢 从安全的角度(以及我作为开发人员)我会说只需将它们注销即可。让他们再次登录。但我的经理对此有其他想法。除了完全删除JWT的到期日,还有其他方法可以实现这一点

我目前正在为我工作的公司开发一个应用程序,它有一个用户名/密码登录系统。但我仍在决定在用户登录后,该应用程序的最佳方案是什么,以保持其登录状态

看起来很有希望,但该应用程序的用户有时会在较长时间(2周以上)内不访问该应用程序。JWT应该有有效期(让我们保持这种方式)。但是,即使用户的JWT在应用程序中过期,还有什么好方法可以让用户保持登录呢

从安全的角度(以及我作为开发人员)我会说只需将它们注销即可。让他们再次登录。但我的经理对此有其他想法。除了完全删除JWT的到期日,还有其他方法可以实现这一点吗(我永远不会删除到期日。如果删除到期日,它将与根本没有登录系统一样安全……)

希望听到您的想法。
亲切的问候,

Kevin Walter

我们通常使用OAuth2,并且访问令牌是JWT。这样,只要JWT有效,我们就可以缩短往返,然后使用刷新流和刷新令牌来获得新的JWT访问令牌,只要刷新令牌有效


访问令牌的寿命较短(4-8小时),刷新令牌的寿命较长(30-365天)。只要应用程序保持刷新令牌的安全性(例如在钥匙链中),您就可以提供合理的安全性,而不会带来糟糕的用户体验。

如果您的设备具有生物识别功能(TouchID/FaceID)让他们选择将用户名和密码保存在钥匙链中,并使用生物识别技术从钥匙链检索凭据。如果他们没有生物识别,那么你可以允许密码回退,或者只保存用户id并让他们重新输入密码。如果您的公司有Azure广告,并且您只需要身份验证,而不需要声明,那么OAuth也是一个不错的选择。OAuth可以自动刷新过期的令牌,而不需要用户名/密码(当达到刷新限制时,用户需要再次登录)。keychain选项是一个好主意。我会调查的!我们没有Azure AD,还有许多其他身份验证源也可以支持OAuth,我刚才提到Azure AD,因为它在企业中很常见