我使用了passport来管理Sails中的身份验证。这是一个奇怪的问题。如果我检查用户以修改导航栏
<ul class="nav navbar-nav navbar-right">
{{#if user}}
<li>{{ user.username }}</li>
<li><a href="/logout">Logout</a></li>
User!
{{else}}
<li><a href="/login">Login</a></li>
{{/if}}
</ul>
登录并转到/那里什么都没有。 当我进入/ login或/ logout时,两者都使用相同的模板并共享上面的代码,我得到满足的两个条件。
有什么想法吗?
答案 0 :(得分:1)
好的,问题是Sails中的策略仅适用于控制器,而不是视图。
解决方案是创建页面控制器,将方法路由到主页视图,然后将以下策略应用于它。它通过护照传递,但不限制访问。 PageController.js
module.exports = {
home: function (req, res) {
res.view();
}
};
policies.js
'*': ['passport'],
PageController: {
'*': ['passport', true]
}