gpt4 book ai didi

javascript - 如何在登录和注册社交之间制定不同的宣誓流程?像谷歌oauth2.0使用passport js

转载 作者:太空宇宙 更新时间:2023-11-04 01:18:48 24 4
gpt4 key购买 nike

我希望 Auth0 能够区分社交注册和社交登录。如果新用户在注册之前尝试使用社交登录,AUTH0 应响应错误并要求用户先注册。如今,当用户在未注册的情况下登录 Social 时,AUTH0 会将其视为注册。

exports.google_LogIn = function(req, res, next) {
passport.authenticate("google", {
scope: ["profile", "email"]
})(req, res, next);
}

最佳答案

您的 Passport 策略允许您返回用户或错误。

例如,如果您的数据库之前尚未发现该用户(使用 Mongoose ),则此 Google 策略将返回错误。

passport.use(new GoogleStrategy({
clientID: GOOGLE_CLIENT_ID,
clientSecret: GOOGLE_CLIENT_SECRET,
callbackURL: "http://www.example.com/auth/google/callback"
},
function(accessToken, refreshToken, profile, done) {
User.findOne({ googleId: profile.id }, function (err, user) {
if (!user) return done(Error("needs signup"), null)
return done(err, user)
});
}
));

在回调路由中,您可以为 Passport 提供一个 failureRedirect,以便在出现错误时将用户发送到您的注册页面。

app.get('/auth/google/callback', 
passport.authenticate('google', { failureRedirect: '/signUpPage' }),
function(req, res) {
res.redirect('/');
});

关于javascript - 如何在登录和注册社交之间制定不同的宣誓流程?像谷歌oauth2.0使用passport js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60015009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com