David Patrick による執筆
Auth0 を初めて利用しますか? Auth0 の仕組み について学び、OAuth 2.0 フレームワークを使用した API 認証と認可の実装方法 を確認してください。
Auth0 API を設定する
API を作成する
https://quickstarts/api)。後でアクセストークン検証を設定する際に、この識別子を audience として使用します。Signing Algorithm は RS256 のままにしておきます。

API にはデフォルトの RS256 署名アルゴリズム を使用することを推奨します。HS256 アルゴリズムを使用する必要がある場合は、HS256 integration sample を参照してください。
パーミッションを定義する
messages リソースへの読み取りアクセスを許可し、管理者のアクセスレベルがある場合はそのリソースへの書き込みアクセスを許可するといった構成が考えられます。
許可されるパーミッションは、Auth0 Dashboard の APIs セクションにある Permissions ビューで定義できます。

この例では
read:messages スコープを使用します。- 受信した HTTP リクエストの
Authorizationヘッダー内に JSON Web Token (JWT) が含まれているかを確認する方法。 - Auth0 アカウントの JSON Web Key Set (JWKS) を使用して、そのトークンが有効かどうかを確認する方法。アクセストークンの検証について詳しくは、アクセストークンを検証するを参照してください。
アクセストークンの検証
依存関係をインストールする
ミドルウェアを設定する
express-oauth2-jwt-bearer を、ドメインと API 識別子を指定して設定します。
上記の checkJwt ミドルウェアは、リクエストに含まれるユーザーのアクセストークンが有効かどうかをチェックします。トークンが有効でない場合、ユーザーがエンドポイントにアクセスしようとすると 401 Authorization エラーが返されます。このミドルウェアは、要求されたリソースにアクセスするために十分なスコープがトークンに含まれているかどうかまではチェックしません。
API エンドポイントを保護する
GET /api/public: 認証不要なリクエストで利用可能GET /api/private: 追加のスコープを含まないアクセストークンを持つ認証済みリクエストで利用可能GET /api/private-scoped:read:messagesスコープが付与されたアクセストークンを持つ認証済みリクエストで利用可能
checkJwt express-oauth2-jwt-bearer ミドルウェアで設定します。
requiresScope メソッドを使用する別のミドルウェアを用意します。必要なスコープを指定し、認可を追加したい任意のルートにそのミドルウェアを適用します。
保護したいルートには、checkJwt と requiredScopes のミドルウェアを渡します。
read:messages スコープを持つアクセストークンだけがエンドポイントにアクセスできます。