的Android刷新令牌

的Android刷新令牌

问题描述:

我开发一个Android应用程序,我有点糊涂了关于令牌和刷新令牌。 现在基本上,用户使用手机号码和短信发送代码登录后,认证服务器会返回一个访问令牌,用于访问所有apis。对于认证服务器,我使用了带有jwt-auth库的Laravel。 当访问令牌将过期时,我将使用AccountManager中存储的用户凭证询问新的访问令牌。 这是否是实现此身份验证的正确方法?的Android刷新令牌

还是我错过了刷新令牌,我问什么时候该到期了新的访问令牌?

由于提前, 丹尼尔

+1

永远不会存储用户凭据在本地数据库。你应该使用刷新令牌。 –

我觉得这是更好地使用这两种tokenrefresh token,所以你并不总是有当你access token过期发送您的凭据。此外,将用户凭证存储在客户端设备上并不安全,您应该将这些信息存储在服务器上,并要求用户在需要时键入。

在这里,我如何实现令牌/刷新令牌过程:

1:你把你的credentials到您的认证服务器(它会送你回一个access token(我用的是JSON web token型至极没有存储在数据库中)和refresh token(存储在数据库中)

2:当你让你检查你的服务器的请求,如果access token已过期,如果是这样,你让你的认证服务器的请求与refresh token在参数为了有一个新的access token(取决于配置你的服务器的离子可能还给你是否有新access token,或者一双新access tokenrefresh token我喜欢)。

3:如果refresh token已过期,请向您的credentials请求一个新的令牌对。

+0

感谢Frederic。最后我用laravel(https://github.com/tymondesigns/jwt-auth/wiki)的JWT-auth库进行此过程: 1.用户将他的凭证发送到auth服务器 2.与我创建的库的访问令牌 3.我喜欢存储在的AccountManager类的Android 4的密码,此令牌当令牌过期我要求如果新令牌的请求失败,我要求用户重新发送凭据使用它 5.一个新的。 您认为这是一个正确的过程吗? – Lic

+0

通常,我们使用刷新令牌来限制通过电线向auth服务发送的客户端证书的使用。 “访问令牌的生存时间越短,客户端证书越需要用来获取新的访问令牌,因此攻击者必须破坏客户端证书的机会越多。因此,如果您拥有一次性刷新令牌,您可以使访问令牌的ttl任意小,而不会影响客户端凭据。“在http://*.com/questions/3487991/why-does-oauth-v2-have-both-access-and-refresh-tokens –

+0

您可以指向哪里,这是实现了一个教程? – suku