我在 node.js 中使用passport-google-oauth
模块在网络应用中进行用户身份验证。当Google帐户已经在浏览器中登录并且您尝试通过Google登录到该网络应用时,passport-google-oauth
会自动重定向到网络应用,就像它已经被授权并且没有谷歌用户同意页面一样。
每次用户通过谷歌登录时,如何强制显示Google用户同意页面。我添加了approval_prompt
,但它仍无效。
请说清楚。
更新
authController.js
passport.authenticate('google', { scope : ['profile', 'email'] },
function (err, user) {
req.logIn(user, function (err) {
if (err)
{
console.log(err);
return res.view('site/index',{callouts:callouts.wrongAccess});
}
return res.redirect('/');
});
})(req, res);
},
passport.js
passport.use(new GoogleStrategy({
clientID : configAuth.googleAuth.clientID,
clientSecret : configAuth.googleAuth.clientSecret,
callbackURL : configAuth.googleAuth.callbackURL,
},
function (token, refreshToken, profile, done) {
process.nextTick(function() {
var newUser = {};
var name = {};
var email = profile.emails[0].value;
User.findOne({'email':email}, function (err, user) {
if (err)
{
return done(err);
}
if (user)
{
return done(null, user);
} else
{
User.create(newUser).done(function (err, created){
console.log(created, 'done');
if (err)
{
throw err;
}
return done(null, created);
});
}
});
});
}));