前提・実現したいこと
angularとlaravelを用いたjwtでの認証機能の作成を行っています
ブラウザからリクエストを投げた際エラーコードは返ってきてないのでおそらく認証自体は成功させられたのですが、発行されたトークンがheaderに書き込まれていないので,書き込みたいのですがその方法がわからないです
下記コードではトークンはheaderに書き込まれないのでしょうか
発生している問題・エラーメッセージ
トークンがheaderに書き込まれずにいる
該当のソースコード
Typescript
1login(email: string, password: string): void { 2 3 const body: Data = { 4 email: email, 5 password: password 6 }; 7 8 Axios.post(`http://127.0.0.1:8000/api/login/`, body, { 9 headers: new HttpHeaders().set('Content-Type', 'application/json'), 10 }); 11
PHP
1function login() { 2 $credentials = request(['email', 'password']); 3 4 if (! $token = auth("api")->attempt($credentials)) { 5 return response()->json(['error' => 'Unauthorized'], 401); 6 } 7 8 return $this->respondWithToken($token); 9 } 10
試したこと
1.テーブルに登録していないデータでリクエストを送ると401が返ってきました。なので認証の機能自体は動いている
2.postmanを使って認証が通るかの確認 → 成功してトークンも返ってきた
laravelのコードを下記のように追記と書き換えてみた.
PHP
1function login() { 2 $credentials = request(['email', 'password']); 3 4 if (! $token = auth("api")->attempt($credentials)) { 5 return response()->json(['error' => 'Unauthorized'], 401); 6 } 7 8 return response()->withHeaders([ 9 'access_token' => $token, 10 'token_type' => 'bearer', 11 'expires_in' => auth("api")->factory()->getTTL() * 60]);
補足情報(FW/ツールのバージョンなど)
環境
フロントエンド angular
バックエンド laravel
使用ブラウザ chrome
あなたの回答
tips
プレビュー