> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 無効なトークンエラーのトラブルシューティング

> 無効なトークンエラーの問題を解決する方法について説明します。

## アクセストークンを使うことなく、HS256署名されたIDトークンを解析する

**エラーメッセージ** ：HS256署名アルゴリズムで署名され、アプリケーション（ブラウザーなど）がシークレットを保管できないため、IDトークンを検証できません。

### 原因

**auth0.jsバージョン9** および **Lockバージョン11** 以降、HS256で署名されたIDトークンは破棄され、ユーザー情報の取得には`/userinfo`が呼び出されます。

`/userinfo`の呼び出しにはアクセストークンが必要です。認証でアクセストークンを要求しない場合には、次のエラーメッセージを受け取ります：
`The id_token cannot be validated because it was signed with the HS256 algorithm and public applications (like a browser) can’t store secrets.Please read the associated doc for possible ways to fix this.`（HS256で署名され、公開アプリケーション（ブラウザーなど）がシークレットを保管できないため、このトークンは検証できません。可能性のある修正方法については、関連するドキュメントをお読みください。）

### 修正

このエラーを修正するには次の2つの方法があります。

1. **（推奨）** アプリケーションの署名アルゴリズムをHS256ではなく、RS256に変更します。
2. `responseType`パラメーターの値を（デフォルトではなく）`token id_token`に変更して、応答でアクセストークンを受け取るようにします。

アプリケーションの署名アルゴリズムをHS256ではなく、RS256に変更するには、以下を行います。

1. [［Auth0 Dashboard］>［Applications（アプリケーション）］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動し、アプリケーションの名前を選択して表示します。
2. **［Settings（設定）］** ページの下までスクロールし、**［Show Advanced Settings（詳細設定を表示）］** を選択します。
3. **［OAuth］** を選択して、**［JsonWebToken Signature Algorithm（JSON Web Token署名アルゴリズム）］** の値を **［RS256］** に変更し、**［Save Changes（変更の保存）］** を選択します。

APIの呼び出しにIDトークンを使用していて、このオプションを有効化する場合には、サーバーのコードを変更し、HS256ではなく、RS256署名アルゴリズムを使ってトークンを検証するようにします。IDトークンでのAPI呼び出しが非推奨であることに注意してください。

<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-3" href="/docs/ja-jp/glossary?term=json-web-token" tip="JSON Web Token（JWT）: 二者間のクレームを安全に表現するために使用される標準IDトークン形式（および多くの場合、アクセストークン形式）。" cta="用語集の表示">JWT</Tooltip>のデコード、検証と生成には[JWTツール](https://jwt.io/)を使用することができます。
