2017-01-20 6 views
0

this questionと似ています。しかし、OPは彼の問題は "それ自身で"解決したと述べた。Satellizerが一部のクライアントで認証ヘッダーを送信していません

thisと同様です。

(私はそれがほとんど同じ問題ですので、説明の一部をコピー&ペーストするつもりです)

私はangularjs/laravelを使用してプロジェクトに取り組んでいます。これはトークンベースのプロジェクトなので、私はそれを処理するためにサテライザを使用しています。

私たちのクライアントの1人は、ログインできないという問題を抱えています。ブラウザで作業しているだけでなく、コンピュータに新しいユーザーアカウントを作成しても機能しません。

問題は、サーバーに認証トークンを送信していないことです。有効なトークンがローカルセッションに格納されていますが、ヘッダーで送信されていません。また、私は手動でヘッダーを設定することはできません。

devツールの[ネットワーク]タブのリクエストヘッダーを見ると、リクエストに認証ヘッダーが含まれていないことがわかります。

私はできることすべてを試したような気がしたので、私は何をするか分からない。 キャッシュを消去してCookieを削除しようとしました。クッキーがブロックされているかどうかをチェックします(クッキーは無効でした)。奇妙なアンチウィルス、ファイアウォール、または奇妙なプログラムがインストールされている(何もない)ことが確認されました。私はまた、システムを再起動し、同じコンピュータ用の新しいユーザーアカウントを作成しようとしましたが、何も機能しませんでした。

実際には他のクライアント(同じプロジェクト)に似たようなものがあり、サテライザーからの何かをサポートしていない古いOSであると非難しましたが、今回は最後のgen pcです。 また、彼は仕事に使用され、突然自分のPCで作業を停止しました。 (おそらくccleanerを実行した後)。

私の疑惑は、実際には自分のコンピュータとは関係ないが、いくつかのトリッキーな条件でトリガするサテライザの不思議なバグです。

私はこの問題の解決策をどこから探し始めることができるかを誰かが知っていることを願っています。

私はここに質問を投稿するのも初めてです...(恥ずかしがり屋)、こんにちは。 (ヘルプ)

答えて

0

私はまだこれが始まった理由を知りません。

最後に、私はサテライザーのソースコードの一部を編集して解決しました。

if (_this.SatellizerShared.isAuthenticated() && _this.SatellizerConfig.httpInterceptor()) { 
        var tokenName = _this.SatellizerConfig.tokenPrefix ? 
         [_this.SatellizerConfig.tokenPrefix, _this.SatellizerConfig.tokenName].join('_') : _this.SatellizerConfig.tokenName; 
        var token = _this.SatellizerStorage.get(tokenName); 
        if (_this.SatellizerConfig.tokenHeader && _this.SatellizerConfig.tokenType) { 
         token = _this.SatellizerConfig.tokenType + ' ' + token; 
        } 
        config.headers[_this.SatellizerConfig.tokenHeader] = token; 
       } 

Satellizerは、ヘッダを設定していなかったので、私は追加:config.headers[_this.SatellizerConfig.tokenHeader] = token; 場合の外部とsatellizer正しくヘッダを設定することができました。

その後、ヘッダーを正しく設定した後、サテライザーが正常に動作して正常に機能していたかどうかを確認するために、私の変更を取り消しました。何らかの理由で認証されたユーザーを認識できず、しかし、ヘッダーを追加することを強制した後は、その後毎回うまくいきました。

これは、誰かが同様の問題で苦労するのを助けることを望みます。

関連する問題