Sails.js限制通过策略访问

时间:2017-12-09 16:55:41

标签: javascript sails.js ejs

我正在尝试限制拥有3方,管理员,用户和访问者(他们不是会员)的访问权限。我只是想在管理员和用户登录时从html中删除Register和Login标题。

这是头版。 session.usertype是一个管理员。 session.userid是所有登录的用户,包括管理员

<% if(session.usertype) { %>
      <li><a href="/item">Item Manager</a></li>
      <li><a href="/category">Category Manager</a></li>
      <% } %>

      <li><a href="/Register">Register</a></li>
      <li><a href="/login">Login</a></li>

      <% if(session.userid) {%>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><%= users.username %><span class="caret"></span></a>
        <ul class="dropdown-menu" role="menu">
          <li><a href="/profile">profile</a></li>
          <li><a href="#">Another action</a></li>
          <li><a href="#">Something else here</a></li>
          <li class="divider"></li>
          <li class="dropdown-header">Nav header</li>
          <li><a href="#">Separated link</a></li>
          <li><a href="#">One more separated link</a></li>
        </ul>
      </li>
      <% } %>

这是控制器

 login:function(req,res){
var username = req.param('username'); 
var password = req.param('password');
//findOne find only one data info that first found.
User.findOne({username:username,password:password}).exec(function(err, result){
  if(err){
    return res.send(err);
  }
  if(result){
    console.log(result);
    req.session.userid = result.id;
    req.session.usertype = result.type;
    return res.redirect('/diy');
  }
   return res.view('user/login',{error:"username or password incorrect"});
}); 

结果图片。

This is visitor will see

但是当我以管理员身份登录时

I don't want that register and login after I logged in

1 个答案:

答案 0 :(得分:0)

Ejs将呈现

  <li><a href="/Register">Register</a></li>
  <li><a href="/login">Login</a></li>

在所有条件下。您需要将其包裹在else条件中。

<% if(session.usertype) { %>
      <li><a href="/item">Item Manager</a></li>
      <li><a href="/category">Category Manager</a></li>
      <% } else {%>

      <li><a href="/Register">Register</a></li>
      <li><a href="/login">Login</a></li>
<% } %>