为什么使用Auth0护照策略,refreshtoken始终为null

时间:2016-12-14 23:33:44

标签: oauth-2.0 passport.js auth0

使用auth0护照策略

https://github.com/auth0/passport-auth0

对于刷新令牌,我的回调始终为null。直接调用auth0锁定函数会给我一个刷新的预期,但是使用这个oauth护照策略不会返回一个refreshtoken。我是否需要将offline_access范围传递给auth0 - 如果是这样,我如何使用Auth0Strategy传递它?

passport.use(new Auth0Strategy({
    domain:       config.auth0.domain,
    clientID:     config.auth0.clientId,
    clientSecret: config.auth0.secret,
    callbackURL:  '/login/return'
  },
  function(accessToken, refreshToken, extraParams, profile, done) {
    console.log('refresh token is always null', refreshToken);
 }
});

1 个答案:

答案 0 :(得分:1)

是的,您需要申请一个(通过添加scope=offline_access)。您在发送初始授权请求时执行此操作(例如,通过Lock或auth0.js,或者只需使用正确的参数链接)。它真的不依赖于护照。有意义吗?

e.g。试试这个:

app.get('/login',
  passport.authenticate('auth0', {scope: 'offline_access'}), function (req, res) {
  res.redirect("/");
});