Я пытаюсь проверить, вошел ли пользователь в EJS-шаблоны:
<% if(locals.login){ %>
<button>logout</button>
<% } else { %>
<button>login</button>
<% } %>
Я определяю свое промежуточное ПО как:
exports.ensureAuthenticated = function(req, res, next) {
if (req.session.passport) {
res.locals.login = req.session.passport;
return next();
}
res.redirect('/');
}
ОБНОВЛЕНИЕ
Вот так я вхожу в систему
app.get('/auth/google',
passport.authenticate('google', { scope : ['profile', 'email'] }));
app.get('/auth/google/callback',
passport.authenticate('google', {
successRedirect : '/portfolio/crypto',
failureRedirect : '/portfolio/crypto'
}));
passport.serializeUser(function(user, done) {
console.log("----------- serializeUser");
// var sessionUser = {environment_hash: user.environment_hash, is_logged: true};
// var sessionUser = user.id;
// console.log(user.id);
console.log("----------- end serializeUser");
done(null, user.id);
// done(null, user.environment_hash);
// done(null, sessionUser);
});
passport.deserializeUser(function(sessionUser, done) {
console.log("----------- deserializeUser");
console.log(sessionUser);
User.findById(sessionUser)
.then( user => {
console.log(user);
done(null, user);
})
.catch( err => {
console.error(err);
done(err);
});
});
passport.use('google', new GoogleStrategy({
clientID : process.env.GOOGLE_CLIENTID,
clientSecret : process.env.GOOGLE_CLIENTSECRET,
callbackURL : process.env.GOOGLE_CALLBACKURL,
passReqToCallback: true,
},
function(req, token, refreshToken, profile, done) {
console.log("----------- req.session");
console.log(req.session.passport);
res.locals.login = req.session.passport;
console.log("----------- end req.session");
process.nextTick(function() {
// console.log(profile);
var values = {
where: { google_id: profile.id },
defaults: {google_id: profile.id, name: profile.displayName}
};
User.findOrCreate(values)
.spread(function(user, created) {
return done(null,user);
});
});
}
));
Но это не меняет мою кнопку в шаблоне после входа пользователя.Как я могу это сделать?
это то, что у меня есть у местных жителей из шаблона EJS:
{
"settings": {
"x-powered-by": true,
"etag": "weak",
"env": "development",
"query parser": "extended",
"subdomain offset": 2,
"trust proxy": false,
"views": "/Users/filipeferminiano/MEGA/altcoin-site/views",
"jsonp callback name": "callback",
"view engine": "ejs"
},
"message": [],
"_locals": {},
"cache": false
}