1

我正在尝试使用 Ember 添加一些基本身份验证层,以避免未登录的用户访问“受限”状态。

问题是我正在检查“进入”事件中的身份验证状态,但即使我从那里重定向到另一条路线,也总是会调用“connectOutlets”。

有没有办法停止从“进入”状态进入“connectOutlets”状态?将身份验证检查置于“connectOutlets”状态感觉有点脏

4

1 回答 1

0

有没有办法停止从“进入”状态进入“connectOutlets”状态?将身份验证检查置于“connectOutlets”状态感觉有点脏

AFAIK 没有一种简单的方法可以做到这一点。已经尝试过一些变通方法,但我不建议您的用例。

我正在尝试使用 Ember 添加一些基本身份验证层,以避免未登录的用户访问“受限”状态。

Ember 并没有真正的“受限”状态。将“状态”视为“用户要求的内容”,而不一定是他们将被授予访问权限的内容。因此,用户可以随时更改 url 并进入任何“状态”,但您的应用在每个状态下的行为将根据模型数据而改变。控制器根据用户的授权级别和 API 返回的数据来决定显示的内容。

到目前为止,最简单的方法是将应用程序模板包装在授权检查中。例如:

{{#if isAuthorized}}
  <h1>Welcome!<h1>
  {{outlet}}
{{else}}
  {{#if isLoggedIn}}
    <p>Sorry, you are not authorized to view this page</p>
  {{else}}
    {{view App.LoginForm }}
  {{/if}}
{{/if}}

然后只需向您的应用程序控制器添加isAuthorizedisLoggedIn计算属性。

于 2013-01-20T08:13:28.637 回答