起こったこと
ユーザーをJWT検証で認証するWebアプリで、ローカル環境でログインしようとしたら以下のエラーが発生しました。
試したこと
エラー内容を調べたところJWTを発行するサーバー(Cognito)と検証側サーバー(ローカルサーバ)側で時刻が一致しない場合に起きるような文言を見つけたため、下記のQiita記事の内容を参考にJWT.php内の$leeway変数をデフォルト値の0から60に変更するなどしてみたのですが、エラーに変化はありませんでした。
改善したこと
jwt.php内の$leeway変数を修正していたのですが、Qiita記事をよく見るとuse Firebase\JWT\JWT
となっていました。そのため、Firebase\JWT\JWT
が使用されているクラス内のtry文にJWT::$leeway = 5;
を入れてあげたことで例外にならずログイン処理が上手くいくようになりました。
終わりに
このエラーの改善に1日かけてしまいましたが、時刻誤差の許容が必要ということが分かって良かったです。