Emberjs:カスタム認証初期化子でセッションを無効にする方法

パナギオティス

Cookie認証でember-simple-auth1.1.0を使用しており、関数(復元、認証、無効化)を備えたカスタムオーセンティケーターとカスタムオーセンティケーターの初期化子を作成しました。

エラーをキャッチできるように、ajaxErrorイベントにバインドします。たとえば、サーバー応答401 NotAuthorizedを使用してルートにアクセスします。セッションを無効にして、ユーザーをログインページにリダイレクトしたいと思います。

現時点では、初期化子でember-simple-authのデフォルトセッションを取得できないため、セッションを無効にすることができます。アプリケーションのカスタムセッションを作成しませんでした。

これを行うための最良の方法は何ですか?

それが不可能な場合は、イニシャライザーでイベントをトリガーし、そのイベントをルートでキャッチする方がよいでしょうか。どうすればこれを行うことができますか?

私のカスタム初期化子は次のようになります。

import BasicAuthenticator from '../authenticators/basic';

export default {
  before: 'ember-simple-auth',
  name: 'basic-authenticator',
  initialize(application) {
    application.register('authenticator:basic', BasicAuthenticator);
    Ember.$(document).ajaxError((event, jqxhr, settings, reason) => {
      if (jqxhr.status === 401) {

      }
    });
  }
};

私のカスタムオーセンティケーター:

import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';

export default Base.extend({
  restore() {
    return new Ember.RSVP.Promise(function(resolve, reject) {
      let sessionCookie = window.Cookies.get('beaker.session.id');
      if(!window.isUndefined(sessionCookie)) {
        resolve(true);
      }else{
        reject();
      }
    });
  },
  authenticate(data) {
    return new Ember.RSVP.Promise(function (resolve, reject) {
      Ember.$.ajax({
        type: 'post',
        url: '/core/authentication/basic/login',
        data: data
    }).then((response) => {
        resolve({
          responseText: response
        });
      }, (error) => {
        reject(error);
      });
    });
  },
  invalidate() {
    return new Ember.RSVP.Promise(function (resolve, reject) {
      Ember.$.ajax({
        type: 'post',
        url: '/core/authentication/basic/logout'
      }).then(() => {
         resolve(true);
       }, () => {
         reject();
      });
    });
  }
});
パナギオティス

イニシャライザ内でセッションを取得する方法に関する解決策を見つけました。

私が見つけた解決策の下:

import BasicAuthenticator from '../authenticators/basic';

export default {
  before: 'ember-simple-auth',
  name: 'basic-authenticator',
  initialize(application) {
    application.register('authenticator:basic', BasicAuthenticator);
    Ember.$(document).ajaxError((event, jqxhr, settings, reason) => {
      let service = application.__container__.lookup('service:session');
      let session = service.get('session');
      if (jqxhr.status === 401) {
       session.invalidate();
      }
    });
  }
};

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

アクションコールバックでカスタムDataTablesボタンを無効にする方法は?

分類Dev

WordPressカスタマイザーでWordPressカスタムcssセクションを無効にする

分類Dev

Spring SecurityOAuth2-認証後にセッションを無効にする

分類Dev

UITableViewCellカスタムアニメーションを無効にする方法は?

分類Dev

カスタムアプリケーションでflashplayerのサウンドを無効にする方法は?

分類Dev

SpriteKitゲームでセカンドタッチを無効にする方法は?

分類Dev

クリック、角度からカスタムアニメーションを無効にする方法は?

分類Dev

Laravelで認証後にセッションを配置する方法

分類Dev

カスタム検証アノテーションでConstraintValidatorメッセージを補間する方法

分類Dev

カスタム認証属性からWebAPIアクションメソッドにデータを渡す方法は?

分類Dev

Wordpressでカスタム投稿タイプのカテゴリオプションを無効にする

分類Dev

オプションの初期化子を使用してカスタムデータ型を@AppStorageに保存しますか?

分類Dev

MobaXterm「カスタムセッション」を削除する方法

分類Dev

Spring Securityがユーザーを認証するときにセッションでカスタムユーザーオブジェクトを管理する方法は?

分類Dev

Javaでセッションを無効にするTomcatCSRF保護フィルターを使用する方法

分類Dev

カスタムエンドポイントのWooCommerceAPI認証を無効にする

分類Dev

カスタムポリシーベースの承認でdbcontextとセッションにアクセスする方法

分類Dev

Laravelにセッション認証のみを配置する方法

分類Dev

RedisセッションでSpringBoot認証を使用する方法

分類Dev

RedisセッションでSpringBoot認証を使用する方法

分類Dev

RedisセッションでSpringBoot認証を使用する方法

分類Dev

選択したセッションをプログラムで無効にする方法は?

分類Dev

Liferayの1つのjspでセッションタイムアウトを無効にする

分類Dev

Openshift3でスティッキーセッションを無効にする方法

分類Dev

Winformメッセージボックス、C#でYESNOオプションを無効にする方法

分類Dev

データベースに認証セッションを保存することは良い習慣ですか?

分類Dev

Railsのカスタム検証メソッドでアソシエーションにアクセスする方法

分類Dev

ASP .NET Core Cookie認証の有効期限は、戻るとタイムスタンプから「セッション」に変更されます

分類Dev

セッションが無効かどうかを確認する方法

Related 関連記事

  1. 1

    アクションコールバックでカスタムDataTablesボタンを無効にする方法は?

  2. 2

    WordPressカスタマイザーでWordPressカスタムcssセクションを無効にする

  3. 3

    Spring SecurityOAuth2-認証後にセッションを無効にする

  4. 4

    UITableViewCellカスタムアニメーションを無効にする方法は?

  5. 5

    カスタムアプリケーションでflashplayerのサウンドを無効にする方法は?

  6. 6

    SpriteKitゲームでセカンドタッチを無効にする方法は?

  7. 7

    クリック、角度からカスタムアニメーションを無効にする方法は?

  8. 8

    Laravelで認証後にセッションを配置する方法

  9. 9

    カスタム検証アノテーションでConstraintValidatorメッセージを補間する方法

  10. 10

    カスタム認証属性からWebAPIアクションメソッドにデータを渡す方法は?

  11. 11

    Wordpressでカスタム投稿タイプのカテゴリオプションを無効にする

  12. 12

    オプションの初期化子を使用してカスタムデータ型を@AppStorageに保存しますか?

  13. 13

    MobaXterm「カスタムセッション」を削除する方法

  14. 14

    Spring Securityがユーザーを認証するときにセッションでカスタムユーザーオブジェクトを管理する方法は?

  15. 15

    Javaでセッションを無効にするTomcatCSRF保護フィルターを使用する方法

  16. 16

    カスタムエンドポイントのWooCommerceAPI認証を無効にする

  17. 17

    カスタムポリシーベースの承認でdbcontextとセッションにアクセスする方法

  18. 18

    Laravelにセッション認証のみを配置する方法

  19. 19

    RedisセッションでSpringBoot認証を使用する方法

  20. 20

    RedisセッションでSpringBoot認証を使用する方法

  21. 21

    RedisセッションでSpringBoot認証を使用する方法

  22. 22

    選択したセッションをプログラムで無効にする方法は?

  23. 23

    Liferayの1つのjspでセッションタイムアウトを無効にする

  24. 24

    Openshift3でスティッキーセッションを無効にする方法

  25. 25

    Winformメッセージボックス、C#でYESNOオプションを無効にする方法

  26. 26

    データベースに認証セッションを保存することは良い習慣ですか?

  27. 27

    Railsのカスタム検証メソッドでアソシエーションにアクセスする方法

  28. 28

    ASP .NET Core Cookie認証の有効期限は、戻るとタイムスタンプから「セッション」に変更されます

  29. 29

    セッションが無効かどうかを確認する方法

ホットタグ

アーカイブ