const GoogleStrategy = require('passport-google-oauth20').Strategy;
const mongoose = require('mongoose');
const keys = require('./keys');
// var image;
// var firstName;
// var emails;
// var lastName;
//loading models
require('../models/students');
const students = mongoose.model('students');
module.exports = function(passport){
passport.use(
new GoogleStrategy({
clientID: keys.googleClientID,
clientSecret:keys.googleClientSecret,
callbackURL:'/auth/google/callback',
proxy: true
}, (accessToken, refreshToken, profile, done) => {
//console.log(accessToken);
console.log(profile.id);
const image = profile.photos[0].value.substring(0,profile.photos[0].value.indexOf('?'));
console.log(image);
console.log(profile.emails[0].value);
console.log(profile.name.givenName);
console.log(profile.name.familyName);
// image = profile.image;
// emails = profile.emails[0].value;
// firstName = profile.name.givenName;
// lastName = profile.name.familyName;
var newStudent = {
googleID: profile.id,
firstName: profile.name.givenName,
lastName: profile.name.familyName,
emails: profile.emails[0].value,
image: image
}
//check for existing users
students.findOne({
googleID: profile.id
}).then(student => {
console.log(`student ${student}`);
if(student){
//return
done(null,student);
}else {
//create users
new students(newStudent)
.save()
.then(student => done(null,student));
}
})
})
)
//serialise fn pass info to the session to verify
passport.serializeUser((student, done) => {
done(null,student.id);
});
//deserializeUser fn called after serializeUser to return the user userInfo
passport.deserializeUser((id,done)=>{
students.findById(id).then(student => done(null,student));
});
}
// module.exports = {
// fname,
// lname,
// emails,
// img
// }
Я хочу использовать firstName, lastName, image в моем файле handlebars, но не получаю значение в файле handlebars.Также, когда я использую закомментированную переменную, я получаю ошибку из-за циклической зависимости.Так как же сделать вышеупомянутую переменную пригодной для использования в другом файле, чтобы я мог отображать параметры рулей в соответствии с логином пользователя.
Также хочу знать, что когда я использую req.logout ();для выхода из системы это просто выход из системы, а когда я вхожу в систему, то не запрашивает учетную запись для входа в систему и автоматически входит в мою учетную запись gmail в Chrome.