I got a problem with sessions. I made a navbar and added a condition isAuth if it’s true username and logout will appear if it’s false login and register will appear then. But when I login successfully navbar doesn’t change still login and register links stay there but when i reload the page navbar changes and username and logout links appear.
<code> // Nav
<% if (isAuth) { %>
<li class="nav-item">
<a href="#" class="nav-link"><%= userName %> (<%= roles %>)</a>
</li>
<li class="nav-item">
<a href="/account/logout" class="nav-link">Log Out</a>
</li>
<% } else { %>
<li class="nav-item">
<a href="/account/login" class="nav-link">Log In</a>
</li>
<li class="nav-item">
<a href="/account/register" class="nav-link">Register</a>
</li>
<% } %>
// Locals Middleware
module.exports = (req, res, next) => {
res.locals.isAuth = req.session.isAuth;
res.locals.userName = req.session.userName;
res.locals.roles = req.session.roles;
next();
};
// Post Login
req.session.roles = userRoles.map((role) => role["name"]);
req.session.isAuth = true;
req.session.userName = userName;
res.redirect("/");
</code>
<code> // Nav
<% if (isAuth) { %>
<li class="nav-item">
<a href="#" class="nav-link"><%= userName %> (<%= roles %>)</a>
</li>
<li class="nav-item">
<a href="/account/logout" class="nav-link">Log Out</a>
</li>
<% } else { %>
<li class="nav-item">
<a href="/account/login" class="nav-link">Log In</a>
</li>
<li class="nav-item">
<a href="/account/register" class="nav-link">Register</a>
</li>
<% } %>
// Locals Middleware
module.exports = (req, res, next) => {
res.locals.isAuth = req.session.isAuth;
res.locals.userName = req.session.userName;
res.locals.roles = req.session.roles;
next();
};
// Post Login
req.session.roles = userRoles.map((role) => role["name"]);
req.session.isAuth = true;
req.session.userName = userName;
res.redirect("/");
</code>
// Nav
<% if (isAuth) { %>
<li class="nav-item">
<a href="#" class="nav-link"><%= userName %> (<%= roles %>)</a>
</li>
<li class="nav-item">
<a href="/account/logout" class="nav-link">Log Out</a>
</li>
<% } else { %>
<li class="nav-item">
<a href="/account/login" class="nav-link">Log In</a>
</li>
<li class="nav-item">
<a href="/account/register" class="nav-link">Register</a>
</li>
<% } %>
// Locals Middleware
module.exports = (req, res, next) => {
res.locals.isAuth = req.session.isAuth;
res.locals.userName = req.session.userName;
res.locals.roles = req.session.roles;
next();
};
// Post Login
req.session.roles = userRoles.map((role) => role["name"]);
req.session.isAuth = true;
req.session.userName = userName;
res.redirect("/");
New contributor
Legitimate is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.