Untitled
unknown
plain_text
4 days ago
1.3 kB
4
Indexable
const passport = require("passport"); const GoogleStrategy = require("passport-google-oauth20").Strategy; const User = require("../models/User"); const Role = require("../models/Role"); require("dotenv").config(); passport.use( new GoogleStrategy( { clientID: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, callbackURL: process.env.GOOGLE_CALLBACK_URL, }, async (accessToken, refreshToken, profile, done) => { try { const email = profile.emails[0].value; console.log(profile) const userRole = await Role.findOne({ name: "user" }); let user = await User.findOne({ email }); if (!user) { user = new User({ email, fullname: profile.displayName, roleId: userRole._id, password: "123456" }); await user.save(); } return done(null, user); } catch (error) { return done(error, null); } } ) ); passport.serializeUser((user, done) => { done(null, user.id); }); passport.deserializeUser(async (id, done) => { try { const user = await User.findById(id); done(null, user); } catch (error) { done(error, null); } });
Editor is loading...
Leave a Comment