6

アプリでEmber シンプル認証を使用していますが、問題なく動作していますが、問題が発生するシナリオに遭遇しました。

ライブラリを使用すると、認証が成功した後にリダイレクトするルートをオーバーライドして指定できますrouteAfterAuthentication: 'index'。これは正常に機能していますが、2 つの異なるタイプのリダイレクトが必要な状況に陥っています。ユーザーが最初にログインするときは に移動してもらいたいのです/dashboardが、最初にサインアップして認証するときは に移動してもらいたいです/settings

アカウントを正常に作成した後、次のようなことができることを望んでいましたが、まだrouteAfterAuthentication移行のオプションを使用しようとしています:

var _this = this;

this.set('identification', _this.get('email'));
this.set('password', password);

this.send('authenticate', function() {
  _this.transitionToRoute('settings');
}, function() {});

1 回限りの認証後にどのルートに遷移するかを指定する方法はありますか? メソッドを実行する必要なく、アカウントを作成した後に誰かをログに記録するためのより良い方法があるauthenticate()でしょうか?

4

1 に答える 1

8

sessionAuthenticated アプリケーションルートのメソッドを単純にオーバーライドして、独自のロジックを実装できます。ただし、デフォルトの実装が常に遷移するとは限らないことに注意してくださいrouteAfterAuthentication。以前にインターセプトされた遷移がセッションに保存されている場合sessionAuthenticatedは、代わりにそれを再試行します。

于 2014-08-15T06:06:11.067 に答える