最近、auth0をさわる機会が多くなってきたが、色々な問題が発生しているので一部を共有します。
AIに聞いても古い情報のものが多く、環境依存の問題が多く苦労している。
今回は、「アクセストークンの検証ができなかった件について」記載します
問題
ログイン後に発行されるアクセストークンを、BEのAPIに渡して、アクセストークン検証したが、エラーとなる
原因
・JWE形式になっており、アクセストークンが暗号化されていた。
・auht0の標準のAPIオーディエンスを使用すると、JWEになり復号化ができない
・auht0に問い合わせて、アクセストークンの解決が必要で、API通信が発生してしまう。
const response = await fetch(`https://YOUR_DOMAIN.auth0.com/userinfo`, { headers: { ‘Authorization’: `Bearer ${token}` } });
対応
・カスタムのAPIオーディエンスを作成する
・ログイン時に、カスタムのAPIオーディエンスを使用して、JWT形式のアクセストークンを発行する
・JWT形式を下記を使用して、トークン検証する
https://YOUR_DOMAIN.auth0.com/.well-known/jwks.json