在react native应用程序中,如何获取刷新令牌。我在文档中看到,您可以通过REST API中的委托端点直接调用刷新令牌端点 - 但是使用Auth0锁定组件有更抽象的方法吗?也许某种设置是“记住登录”并为你做所有的管道工作?
如果没有,那么我们自己实现它会在每个应用程序启动时调用刷新令牌服务吗?如果是这样,我们是直接进行REST调用,还是应该通过某种类型的auth0库来进行?
是否有示例代码使用显示所需步骤的库,如
检查现有令牌是否已过期
获取刷新令牌
兑换刷新令牌以获取访问令牌
或者,这些步骤是否已被库以某种方式抽象出来?
答案 0 :(得分:3)
作为用户身份验证结果而收到的id_token
遵循OpenID Connect规范,因此它将包含exp
声明,您可以检查该声明以检测到期。
exp :不得接受ID令牌或其后的过期时间。处理此参数要求当前日期/时间必须在值中列出的到期日期/时间之前。实施者可以提供一些小的余地,通常不超过几分钟,以解决时钟偏差。 其值是一个JSON数字,表示1970-01-01T0:0:0Z的秒数,以UTC为单位,直到日期/时间。
(重点是我的;来源:OpenID Connect)
如果在执行身份验证过程中包含offline_access
范围,您应该获得与ID令牌一起发布的刷新令牌。
根据react-native-lock
documentation,您可以使用authenticationAPI()
方法获取可用于刷新用户令牌的Authentication API客户端。
可以在react-native-auth0
documentation:
.authentication('{YOUR_CLIENT_ID}')
.refreshToken('user refresh_token')
.then(response => console.log(response))
.catch(error => console.log(error));