2016-12-14 29 views
0

使用auth0護照戰略爲什麼總是refreshtoken空使用Auth0護照戰略

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

我的回調總是空的刷新令牌。調用auth0鎖定函數直接爲我提供了預期的refreshtoken,但是使用此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

是的,你需要申請一個(加入scope=offline_access)。您在發送初始授權請求時(例如,通過Lock或auth0.js,或通過簡單地跟隨具有正確參數的鏈接)來執行此操作。它並不依賴於護照。說得通?

例如試試這個:

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

是 - 但我找不到在哪裏,因爲護照正在授權請求,所以我必須配置護照策略以某種方式添加的配置來發送該參數。它看起來像使用標準的oauth模式來提出代碼請求,而我看不到可以設置的選項屬性。 – MonkeyBonkey