所以我很好奇制作一个内网类型的应用程序,允许我的用户通过谷歌进行身份验证。我正在使用PassportJS链接它们,但我想知道你是否只允许某些用户(我选择)进行身份验证。
我以为我可以使用Google群组或其他东西,只允许该群组通过身份验证?....我不确定。如果有人可以帮助我,那就很酷了
答案 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!'));
}
});
}
));