Я пытался сделать базовый вход в систему с помощью кода Google для приложения node.js. Я аутентифицировал свой вход в Google, но после этого я не могу получить доступ к имени пользователя присоединенной учетной записи в профиле маршрута, который находится в папке представлений. Я прилагаю здесь важные биты.
вот мой файл passport.js
passport.use(new GoogleStrategy(secret.google, function(req, token, refreshToken, profile, done) {
User.findOne({ googleId: profile.id }, function (err, user) {
if(err) return done(err);
if(user){
req.flash('loginMessage','successfully logged in');
return done(err);
}
else{
const newUser = new User();
newUser.email = profile._json.email;
newUser.google = profile.id;
newUser.tokens.push({kind : 'google', token:token});
newUser.profile.name = profile.displayName;
newUser.save(function(err){
if(err) throw err;
req.flash('loginMessage','Successfully logged in');
return done(null, newUser);
});
}
});
}
));
вот мой файл server.js, где я использовал промежуточное ПО для использования res.locals для доступа к имени пользователя в папке представлений
app.use(function(req, res, next){
res.locals.user = req.user;
next();
});
и мой файл profile.ejs
<% layout('boilerplate') %>
<% if(message.length >0) {%>
<div class= "alert alert-success alert-dismissible">
<button class = "close" type = "button" data-dismiss ="alert" aria-
label="Close">
<span aria-hidden="true">× </span>
</button>
<%= message %>
</div>
<% }%>
<%= user.profile.name %>
Там написано, что не может прочитать профиль не определено. Подскажите пожалуйста как это исправить.