Skip to main content

Laravel tymon/jwt-auth でトークンを Cookie に保存する

環境

概要

jwt-auth では、JWT トークンを以下の順番で検索する。

  • Authorization ヘッダ (Bearer)
  • Request->query('token')
  • Request->input('token')
  • Route パラメタ (token)
  • Cookie (token)

ということで、トークンを発行したら、token という名前の Cookie を設定してあげればよい。

設定手順

class AuthController extends Controller
{
public function login(Request $request, CookieJar $cookie): Response
{
$credentials = request(['email', 'password']);
$token = auth()->attempt($credentials);
...
return response(...)
->withCookie($cookie->make(
'token',
$token,
config('jwt.refresh_ttl'), // minutes
null, // path
null, // domain
$request->getScheme() === 'https', // secure
true // httpOnly
));
}
}