我正在使用nodejs npm模块passport-google-oauth2
我目前正在使用它完全按照其示例显示的方式,使用重定向URI,谷歌oauth将在成功验证后回调:
示例:
服务器端:
var GoogleStrategy = require( 'passport-google-oauth2' ).Strategy;
passport.use(new GoogleStrategy({
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackURL: "http://yourdormain:3000/auth/google/callback",
passReqToCallback : true
},
function(request, accessToken, refreshToken, profile, done) {
User.findOrCreate({ googleId: profile.id }, function (err, user) {
return done(err, user);
});
}
));
客户方:
app.get('/auth/google',
passport.authenticate('google', { scope:
[ 'https://www.googleapis.com/auth/plus.login',
'https://www.googleapis.com/auth/plus.profile.emails.read' ] }
));
app.get( '/auth/google/callback',
passport.authenticate( 'google', {
successRedirect: '/auth/google/success',
failureRedirect: '/auth/google/failure'
}));
我知道有一种方法可以使用Google OAuth 而无需重定向;它只是以某种方式停留在同一页面(谷歌SSO)。我认为你可以只用GoogleVerifier
来做,而不是构建一个new GoogleAuthorizationCodeTokenRequest()
(Java例子),但我现在很失落。
问题:
如何在没有重定向URI的情况下使用google oauth2? (我知道可以使用Java中的GoogleVerifier对象完成)。
我在NodeJS中使用了错误的Google SSO模块吗?以上模块是否适合使用OAuth2的Google SSO?它适用于Google OAuth2,但它是否能够SSO?
提前感谢您提供任何帮助