使用refresh_token获取带有Auth0 Lock 10 / Auth0.js 8的新id_token?

时间:2017-01-18 11:25:05

标签: javascript auth0

我需要使用refresh_token(我已存储)从Auth0获取新的id_token。

在Auth0 Lock的第9版中,有一种方法(as documented here):

lock.getClient().refreshToken(refresh_token, function (err, delegationResult) {
  // Get here the new JWT via delegationResult.id_token
});

在Lock 10中,getClient()不再存在,而this page表示您可以实例化您自己的auth0.js实例。我该怎么做?

我试过了:

return new auth0.WebAuth({
    domain: '...',
    clientID: '...'
});

但是这个对象似乎没有任何有用的方法。旧的Auth0.js v7库看起来很清楚:

auth0.refreshToken(refresh_token, function (err, delegationResult) {
  // Get here the new delegationResult.id_token
});

如何使用auth0.js v8实现这一目标?

2 个答案:

答案 0 :(得分:3)

正如所指出的那样,renewAuth似乎是实现这一目标的新方法。但是,也可以对Auth0 api进行手动HTTP调用,以便使用刷新令牌获取新的id令牌:

POST {yourAuth0Domain}/delegation

{
    client_id: "...",
    grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
    refresh_token: "...",
    scope: "openid app_metadata"
}

答案 1 :(得分:0)

根据available documentation使用Auth0.js v8获取新令牌的方法是使用renewAuth方法。

  

renewAuth方法允许您从已经针对托管登录页面进行身份验证的用户从Auth0获取新令牌。