我正在开发一个 Android 应用程序,我对 token 和刷新 token 有点困惑。 基本上现在,在用户使用手机号码和短信发送的代码登录后,身份验证服务器会返回一个访问 token ,该 token 将用于访问所有 api。对于身份验证服务器,我使用了 Laravel 和 jwt-auth 库。 当访问 token 过期时,我将使用存储在 AccountManager 中的用户凭证请求一个新的访问 token 。 这是实现此身份验证的正确方法吗?
或者我丢失了刷新 token ,当它过期时我要求一个新的访问 token ?
提前致谢, 丹妮尔
最佳答案
我认为同时使用 token
和 refresh token
会更好,这样你就不必总是在你的 access token
已过期。此外,将用户凭据存储在客户端设备上并不安全,您应该将此信息存储在您的服务器上,并要求用户在需要时输入。
这里是我如何实现 token /刷新 token 过程:
1:您将您的凭据
发送到您的身份验证服务器(它会发回您一个access token
(我使用JSON web token
不存储在数据库中的类型)和一个刷新 token
(存储在数据库中)。
2:当您向您的服务器发出请求时,您检查访问 token
是否过期,如果是,您使用刷新 token <向您的身份验证服务器发出请求
在参数中以获得新的 access token
(取决于您服务器的配置,它可以返回给您一个新的 access token
,还是一对新的我更喜欢 access token
和 refresh token
。
3:如果刷新 token
已过期,您可以使用您的凭据
请求获得一对新 token 。
关于安卓刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31346644/