3

ルーティングとプッシュステートに関連して Ember.js について考えている人がいるのだろうか。

認証の典型的な Ember の例は次のとおりです。

aStateManager = Em.StateManager.create({
    initialState: 'unauthenticated',
    authenticated: Em.State.create({}),
    unauthenticated: Em.State.create({
      authenticate: function(stateManager, context){
        stateManager.goToState('authenticated')
      }
    })
  })

  aStateManager.send('authenticate')

これは、ユーザーが常にルート URL に送信される場合に機能します。しかし、ユーザーが「/api/resource/1」などの URL をアドレス バーに入力した場合、ユーザーが各状態で認証されているかどうかを確認する方法はありますか?

私が探しているのは before_filter のようなレールだと思います。

この一般的なシナリオの解決策を思いついた人はいますか?

4

1 に答える 1

1

あらゆる種類の認証で直面する問題は、ユーザーがすべてのモデルに完全にアクセスでき、モデル内のデータを変更して、以前は持っていなかったアクセス許可を自分に与えることができることです。そして、毎回サーバーに連絡するのは面倒です。

私が頭に浮かぶ考えられる解決策の1つは、フリーズ可能なミックスインとオブジェクトのisDirtyフラグを使用することです。DSモデルとしてユーザーのアクセス許可を取得し(残り火データを使用している場合)、それをフリーズとして定義できます。次に、モデルがダーティであるかどうか(つまり、モデルが変更されているかどうか)を確認するパーミッションチェックミックスインを作成します。また、コードの他のすべての部分でフリーズ状態を尊重します。

もちろん、他のさまざまなユースケースについては考えていませんが、これは貴重な出発点になるはずです。

于 2012-05-31T06:17:23.847 に答える