我可以使用Passportjs仅对某些Google用户进行身份验证吗?

时间:2015-05-01 05:35:26

标签: javascript passport.js

所以我很好奇制作一个内网类型的应用程序,允许我的用户通过谷歌进行身份验证。我正在使用PassportJS链接它们,但我想知道你是否只允许某些用户(我选择)进行身份验证。

我以为我可以使用Google群组或其他东西,只允许该群组通过身份验证?....我不确定。如果有人可以帮助我,那就很酷了

1 个答案:

答案 0 :(得分:2)

是的,你可以这样做。例如,如果您使用passport-google-oauth,我会指出您的代码示例:

https://github.com/jaredhanson/passport-google-oauth/blob/287d53b/examples/oauth2/app.js#L37

verify功能中,在护照验证了收到的用户的Google帐户后,您可以自行决定,例如调用google API来检查该用户是否属于特定的Google基。

passport.use(new GoogleStrategy({
    clientID: GOOGLE_CLIENT_ID,
    clientSecret: GOOGLE_CLIENT_SECRET,
    callbackURL: "http://127.0.0.1:3000/auth/google/callback"
  },
  function(accessToken, refreshToken, profile, done) {

    // Your custom group membership checking goes here
    checkGroupMembership(profile, function(err, isMember) {
      if (isMember) {
        done(null, profile);
      } else {
        done(new Error('Not part of google group!'));
      }
    });
  }
));