Auth/Session 无法在 Sails with Passport 的一页上工作
Auth/Session not working on one page in Sails with Passport
我在 Sails 中使用 passport 来管理身份验证。这是一个奇怪的问题。如果我检查用户以修改导航栏
<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 时,它们都使用相同的模板并共享上面的代码,这两个条件都得到满足。
有什么想法吗?
好的,问题是 Sails 中的策略只应用于控制器,而不是视图。
解决方案是创建一个页面控制器,将一个方法路由到主页视图,然后对其应用以下策略。它通过护照传递,但不限制访问。
PageController.js
module.exports = {
home: function (req, res) {
res.view();
}
};
policies.js
'*': ['passport'],
PageController: {
'*': ['passport', true]
}
我在 Sails 中使用 passport 来管理身份验证。这是一个奇怪的问题。如果我检查用户以修改导航栏
<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 时,它们都使用相同的模板并共享上面的代码,这两个条件都得到满足。
有什么想法吗?
好的,问题是 Sails 中的策略只应用于控制器,而不是视图。
解决方案是创建一个页面控制器,将一个方法路由到主页视图,然后对其应用以下策略。它通过护照传递,但不限制访问。 PageController.js
module.exports = {
home: function (req, res) {
res.view();
}
};
policies.js
'*': ['passport'],
PageController: {
'*': ['passport', true]
}