我正在尝试使用Ember添加一些基本身份验证层,以避免未登录的用户访问“受限”状态。
问题是我正在'enter'事件中检查身份验证状态,但即使我从那里重定向到另一个路由,也总是调用'connectOutlets'。
有没有办法停止从'enter'状态进入'connectOutlets'状态?将身份验证检查置于'connectOutlets'状态
会感觉有点脏答案 0 :(得分:0)
有没有办法停止从'enter'状态进入'connectOutlets'状态?将身份验证检查置于'connectOutlets'状态
会感觉有点脏
AFAIK没有直接的方法来做到这一点。有一些尝试解决方法,但我不建议你的用例。
我正在尝试使用Ember添加一些基本身份验证层,以避免未登录的用户访问“受限”状态。
Ember并没有'限制'状态。将“状态”视为“用户要求的内容”,而不一定是他们将获得访问权限的内容。因此,用户可以随时更改网址并进入任何“状态”,但您的应用在每种状态下的行为都会根据模型数据而改变。控制器根据用户的授权级别和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}}
然后只需将isAuthorized
和isLoggedIn
计算属性添加到应用程序控制器。