【发布时间】:2019-05-27 08:55:12
【问题描述】:
我正在使用护照验证用户进入我的应用程序
我已经为此创建了护照策略
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
callbackURL: process.env.GOOGLE_CALLBACK_URL,
userProfileURL: 'https://www.googleapis.com/oauth2/v3/userinfo',
accessType: 'offline'
}, (accessToken, refreshToken, profile, cb) => {
console.log(refreshToken)
let profileSort = extractProfile(profile)
mongooeHelperFunction.findUserByEmail(profileSort.email).then(response => {
if (!response) {
mongooeHelperFunction.createNewUser(profileSort)
.then(res => {
let newRes = {...res}
newRes["accessToken"] = accessToken
cb(null, newRes)
})
.catch(error => { throw error })
} else {
let newRes = {...response}
newRes["accessToken"] = accessToken
cb(null, newRes)
}
})
.catch(error => { throw error })
}
))
(上面和我们平时创建的护照策略很相似)
为了获得上面的刷新令牌,我在我的 api 路由中这样做
router.get("/google", passport.authenticate('google', {accessType: 'offline', prompt: 'consent', scope: ['profile', 'email', 'https://mail.google.com/' ] }));
问题:这确实给了我一个访问令牌。我如何知道访问令牌何时到期?
我最初的目标是在访问令牌过期时通过刷新令牌获取新的访问令牌。
谁能帮我实现这个目标?
【问题讨论】:
标签: node.js express oauth-2.0 jwt passport.js