【Laravel8.x】リクエストヘッダーの値を取得する。

はい、今回はLaravel8.0系でログアウトする時にレスポンスデータとしてtokenを返したいと思ったので、リクエストヘッダーに入っていたtokenを取得してみようと思います!

sanctumを使うと、Bearer使うんでログアウト時にはリクエストヘッダーにbearer token入れてリクエストが来ます。

ということでこのbearer tokenを取得しましょう。

解決したいこと

requestのパラメータに入っていたら、$request->keyで取得できるんで、問題はありませんでした。

しかしリクエストヘッダーの値はどうして取得したらいいんだろ?ってなったんでリクエストヘッダーの値の取得方法がわからない問題を解決しましょ。

解決方法1 getallheaders()メソッドを使う

全てのHTTPリクエストヘッダを取得するgetallheaders()を使ってみましょう。

いったんgetallheaders()では何を取得できるのか見てみる。

{ "Authorization": "Bearer 154|ByrNaGc8WIYmHQDja3pMfBIIV0NE9QVfbnhhktSp", "User-Agent": "PostmanRuntime/7.28.4", "Accept": "*/*", "Postman-Token": "a3ecwwfea5-a23f-wgeraf0f-9258-94bewa72a13a1", "Host": "127.0.0.1:8000", "Accept-Encoding": "gzip, deflate, br", "Connection": "keep-alive", "Content-Length": "0" }
Code language: JSON / JSON with Comments (json)

POSTMAN使っているからuser-agentはPOSTMANだなーとか、色々かえってきてますね。

ただ、今回欲しいのはAuthorizationの値だから以下の感じで取得してみる。

//header変数にheaderの内容全て詰め込む $header = getallheaders(); //$headerの中のAuthorizationだけ返す return $header['Authorization'];
Code language: PHP (php)

ほい、そしたらこんなのが返ってくる↓

Bearer 154|ByrNaGc8WIYmHQDja3pMfBIIV0NE9QVfbnhhktSp

完璧ですなーということでgetallheaders()を使っての取得方法はこれでおk

解決方法2 $requestから取得する

いや、結局$requestから取得できるんかい、、、

って感じですが。以下のようにして取得できるそうです。

//取得 $request->header('Authorization'); //tokenを返す return $request->header('Authorization');
Code language: PHP (php)

ほい、返ってきた値は、解決方法1とおんなじです。

まとめ

今回は簡単な問題でしたね~ 

伝えたい人に届ける技術記事の書き方←を意識したら結構読みやすい記事になった気がする。 あざまs

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA