如何使用Lock在Auth0中获取刷新令牌并做出本机反应

时间:2016-11-14 19:58:13

标签: auth0

在react native应用程序中,如何获取刷新令牌。我在文档中看到,您可以通过REST API中的委托端点直接调用刷新令牌端点 - 但是使用Auth0锁定组件有更抽象的方法吗?也许某种设置是“记住登录”并为你做所有的管道工作?

如果没有,那么我们自己实现它会在每个应用程序启动时调用刷新令牌服务吗?如果是这样,我们是直接进行REST调用,还是应该通过某种类型的auth0库来进行?

是否有示例代码使用显示所需步骤的库,如

  • 检查现有令牌是否已过期

  • 获取刷新令牌

  • 兑换刷新令牌以获取访问令牌

或者,这些步骤是否已被库以某种方式抽象出来?

1 个答案:

答案 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));