LoginSignup
2
0

More than 1 year has passed since last update.

【PHP】`firebase/php-jwt`でトークンをdecode時に { "status": "\"kid\" empty, unable to lookup correct key" }のエラーが発生

Posted at

概要

PHPでJWTの仕組みを実装する場合、firebase/php-jwtのライブラリが使用されることがあると思います。このライブラリを使用して、JWTのトークン作成からdecodeまでの実装はPHP: JWT を使った認証の記事が、参考になると思います。
さて、実際にトークンのdecodeを行う時に以下のような実装を行ったところ、 { "status": "\"kid\" empty, unable to lookup correct key" }というエラーが発生しました。

$decodedResult =  JWT::decode($token, env('JWT_SECRET_KEY'), ['HS256']);

なお、今回使用したライブラリのバージョンはv6.3.0です。

原因

こちらのstackoverflowの記事によると、キーの指定にFirebase\JWT\Keyのクラスを使用する必要になったとのこと。(どのバージョンからかは調べてないです・・)
stackoverflowにもGoogle keeps changing stuff and breaking backwards compatibility with no respect of users. I find it extremely rude of themというコメントがある通り、周知とかされずどこかでしれっと変わったのかもしれません。。

対応

以下のようにdecodeの実装をすればOKです。

$decodedResult =  JWT::decode($token, new Key(env('JWT_SECRET_KEY'), 'HS256'));
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0