0

simple-auth のカスタム オーセンティケーターとオーソライザーを備えた ember-cli アプリを、0.0.40 と ember-cli-simple-auth 0.6.3 からそれぞれバージョン 0.0.46 と 0.6.7 にアップグレードしました。

認証は正常に機能しますが、authorize() メソッドが起動しないため、セキュリティ トークンがヘッダーに追加されず、http 401 エラーが返されます。

これは crossOriginWhitelist の問題がない可能性があることを他の場所で読んだことがありますが、index.html にこれがあります。

<script>
  window.EmberENV = {{EMBER_ENV}};
  <!-- Ember Simple Auth relies on window.ENV to read its configuration -->
  window.ENV = window.EmberENV;
  window.ENV['simple-auth'] = {
      authorizer: 'authorizer:custom',
     crossOriginWhitelist: window.EmberENV.APP.crossOriginWhitelist
  };
</script>

私には問題ないようです。

これを beforeModel() 承認チェックの ajax 呼び出しに追加することで、401 エラーをなくすことができます。

            beforeSend: function (request)
            {
                request.setRequestHeader('Authorization', 'Bearer ' + self.get('session.token'));
            },

もちろん、それは正しくありません。それはただのバンドエイドです。

誰にもアイデアはありますか?

ありがとう、

ビリーB

4

1 に答える 1

0

問題が見つかりました。

ember-cli バージョンのアップグレード以外に行った唯一の変更は、ember-simple-authからember-cli-simple-authに切り替えることでした。これは、Ember CLI アドオンとしてパッケージ化された Ember Simple Auth ベース ライブラリです。

後者は、上記で行ったように、index.html のインライン スクリプトではなく、ember-cli の environment.js で構成を受け入れます。これはうまくいきました:

    ENV['simple-auth'] = {
      authenticationRoute: 'login',
      routeAfterAuthentication: 'index',
      routeIfAlreadyAuthenticated: 'index',
      authorizer: 'authorizer:custom',
      crossOriginWhitelist: ENV.APP.crossOriginWhitelist

simple-auth の人々への注意: これは十分に文書化されていなかったか、少なくとも私は見逃していました。

-ビリーB

于 2014-10-21T15:36:29.977 に答える