Angular2トークン認証モジュールを動作させようとしていますが、最初のロード時に '401'エラーが継続しています。Angular4 Token Authが 'auth/validate'コールを作成しています
私は認証/登録/ログインが動作するようにしましたが、新しいリロード時にはいつでも誰かがログインしていないので、401エラーが発生します。
ネットワークログを見ると何らかの理由で2 validate_token
が呼び出されますが、トークンは存在しません。最初の応答は200
の応答で成功しますが、2番目の応答は401
で失敗します。私は両方を比較して、私が見る唯一の違いは、2番目にcontent-type
ヘッダーがないことです。
私の全体のサービスは、私は私がそれについて知らないAngular2-トークンで何かこの原因が、私はわからないよさがあると信じて
import { Injectable } from '@angular/core';
import {Angular2TokenService} from "angular2-token";
import {Subject, Observable} from "rxjs";
import {Response} from "@angular/http";
@Injectable()
export class AuthService {
userSignedIn$:Subject<boolean> = new Subject();
constructor(public authService:Angular2TokenService) {
this.authService.validateToken().subscribe(
res => res.status == 200 ? this.userSignedIn$.next(res.json().success) : this.userSignedIn$.next(false)
)
}
logOutUser():Observable<Response>{
return this.authService.signOut().map(
res => {
this.userSignedIn$.next(false);
return res;
}
);
}
registerUser(signUpData: {email:string, password:string, passwordConfirmation:string}):Observable<Response>{
return this.authService.registerAccount(signUpData).map(
res => {
this.userSignedIn$.next(true);
return res
}
);
}
logInUser(signInData: {email:string, password:string}):Observable<Response>{
return this.authService.signIn(signInData).map(
res => {
this.userSignedIn$.next(true);
return res
}
);
}
}
かなり汎用的です。私はバックエンドをチェックしており、何の要求も来ていないという記録はありません。
失敗した要求
GET /認証/ validate_token HTTP/1.1 ホスト:baseUrlに 接続:キープアライブ プラグマ:キャッシュなし のCache-Control:キャッシュなし は受け入れ:アプリケーション/ JSONを 原産地:http://localhost:4200 のUser-Agent:Mozillaの/ 5.0(Windows NTの10.0; Win64の、x64の)のAppleWebKit/537.36(KHTML、ヤモリなど)クローム/ 60.0.3112.90サファリ/ 537.36 のContent-Type:アプリケーション/ JSON リファラー:http://localhost:4200/ 受け入れエンコード:gzipで、収縮させる、BR のAccept-言語:EN-US、EN; Q = 0.8
成功したリクエスト OPTIONS /認証/ validate_token HTTP/1.1 ホスト:baseUrlに 接続:キープキャッシュプラグマ:no-cache キャッシュ制御:no-cache アクセス制御要求メソッド:GET オリジン:http://localhost:4200 ユーザーエージェント:Mozilla/5.0(Windows NT 10.0; Win64; x64)のAppleWebKit/537.36(KHTML、ヤモリ)クローム/ 60.0.3112.90サファリ様/ 537.36 アクセス制御リクエスト・ヘッダー:コンテンツタイプ 受け入れ:/ リファラーを:http://localhost:4200/ 受け入れエンコード:gzipで、収縮、 br 受け入れ言語:en-US、en; q = 0.8
これは失敗した人がGET要求を出しているようで、問題を引き起こしているようですが、何が呼び出されているのか分かりません。見る方法はありますか?
この説明をお寄せいただき、ありがとうございます。それはポート4200 - > 8080です - 私は2番目の呼び出しを呼び出していたものが完全に混乱していたので、多く役立ちます。私はそれを得ると思いますが、ユーザーがログインしていない場合は、それがトークンを検証するために奇妙な感じを与えます。 – DNorthrup