首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏导航栏元素并显示带有ejs的注销按钮

隐藏导航栏元素并显示带有ejs的注销按钮
EN

Stack Overflow用户
提问于 2021-10-13 07:40:59
回答 1查看 96关注 0票数 -1

我正在做一个web项目,我使用html,java,css。该网站是在一个快速服务器上生成的快速生成器与ejs模板,我希望当一个用户登录(护照和bcrypt完成),他被重定向到“主页",而不是”登录“和”订阅“项目,必须有”注销“和一个图标登录到用户配置文件。这是怎么做到的?你可以在ejs做吗?

我试着和<% if (isLoggedIn) ..。但是它不工作,我删除了代码,你能给我一个实际的例子和几行代码吗?

代码语言:javascript
复制
      <header> /*home page*/
      <div class="container">
        <img src="/images/logo.png" alt="logo" class="logo">

        <nav>
          <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/articoli">Articoli</a></li>
            <li><a href="/serie">Serie</a></li>
            <li><a href="/accedi">Accedi</a></li>
            <li><a href="/iscriviti">Iscriviti</a></li>
          </ul>
        </nav>
      </div>
    </header>
EN

回答 1

Stack Overflow用户

发布于 2021-10-13 08:35:32

当您使用passport登录时,用户信息在req.user对象中

因此您必须使用条件运算符检查req.user中是否存在显示注销或显示正常菜单

代码语言:javascript
复制
const ensureAuthenticated = (req, res, next) => {
  if (req.isAuthenticated() || res.locals.isVerified) {
    return next();
  }
  req.flash("error_msg", "please signin to view this resource");
  res.redirect("/users/emailsignin");
};

使用上述中间件检查是否已登录

在app.js中

代码语言:javascript
复制
app.use(function (req, res, next) {
  res.locals.isAuthenticated = req.isAuthenticated();
  next();
});

在导航栏中

代码语言:javascript
复制
  <% if(isAuthenticated ) { %>

使用上面的检查来显示隐藏菜单

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69551492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档