使用nodejs passport-google-oauth2而不使用重定向URI

时间:2017-03-22 21:33:35

标签: node.js google-oauth passport.js google-oauth2 passport-google-oauth2

我正在使用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例子),但我现在很失落。

问题:

  1. 如何在没有重定向URI的情况下使用google oauth2? (我知道可以使用Java中的GoogleVerifier对象完成)。

  2. 我在NodeJS中使用了错误的Google SSO模块吗?以上模块是否适合使用OAuth2的Google SSO?它适用于Google OAuth2,但它是否能够SSO?

  3. 提前感谢您提供任何帮助

0 个答案:

没有答案