【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