我正在开发Android应用,我对令牌和刷新令牌有点困惑。 基本上现在,在用户使用移动号码和SMS发送的代码登录后,认证服务器返回将用于访问所有api的访问令牌。对于身份验证服务器,我使用了Laravel和jwt-auth库。 当访问令牌过期时,我将使用存储在AccountManager中的用户凭证来询问新的令牌。 这是实现此身份验证的正确方法吗?
或者我错过了刷新令牌,当过期时我会问一个新的访问令牌?
提前致谢, 丹尼尔
答案 0 :(得分:10)
我认为最好同时使用token
和refresh token
,因此当access token
过期时,您无需始终发送凭据。此外,在用户设备上存储用户凭据并不安全,您应该在服务器上存储此信息,并要求用户在需要时键入。
这是我如何实现令牌/刷新令牌过程:
1:您将credentials
发送到您的身份验证服务器(它会向您发送一个access token
(我使用未存储在数据库中的JSON web token
类型)和{{ 1}}(存储在数据库中)。
2:当您向服务器发出请求时,检查refresh token
是否已过期,如果是,则向参与access token
参数的身份验证服务器发出请求,以便有一个新的refresh token
(取决于您的服务器的配置,它可以为您提供新的access token
,或者我更喜欢的新access token
和access token
对
3:如果refresh token
已过期,您向refresh token
发出请求以获得一对新令牌。