1

「制限付き」状態にアクセスするためにログに記録されていないユーザーを回避するために、Emberで基本認証レイヤーを追加しようとしています。

問題は、「enter」イベントで認証ステータスをチェックしていることですが、そこから別のルートにリダイレクトしても、「connectOutlets」が常に呼び出されます。

「enter」状態から「connectOutlets」状態への移行を停止する方法はありますか?認証チェックを「connectOutlets」状態にするのは少し汚い感じがします

4

1 に答える 1

0

「enter」状態から「connectOutlets」状態への移行を停止する方法はありますか? 「connectOutlets」状態に認証チェックを入れるのは少し汚い気がします

私の知る限り、これを行う簡単な方法はありません。回避策がいくつか試みられていますが、ユースケースにはお勧めしません。

「制限された」状態にアクセスするためにログインしていないユーザーを避けるために、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}}

isAuthorized次に、isLoggedIn計算されたプロパティをアプリケーション コントローラーに追加するだけです。

于 2013-01-20T08:13:28.637 に答える