在社交网站中创建不同的登录和注册流程,尤其是使用Passport.js结合Google OAuth 2.0,可以提供用户友好的体验并增强安全性。以下是实现这一目标的步骤和相关概念:
/register
路由中处理新用户的注册逻辑。/login
路由中处理已注册用户的登录逻辑。const express = require('express');
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const app = express();
passport.use(new GoogleStrategy({
clientID: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
callbackURL: "http://localhost:3000/auth/google/callback"
},
function(accessToken, refreshToken, profile, done) {
return done(null, profile);
}
));
app.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email'] }));
app.get('/auth/google/callback',
passport.authenticate('google', { failureRedirect: '/login' }),
function(req, res) {
if (req.user.isNew) {
res.redirect('/register');
} else {
res.redirect('/login');
}
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
通过以上步骤,你可以实现一个基于Google OAuth 2.0的登录和注册流程,提供安全且用户友好的体验。
领取专属 10元无门槛券
手把手带您无忧上云