jwt
このモジュールには、Auth.jsが発行および使用するJWTをエンコードおよびデコードするための関数と型が含まれています。
Auth.jsが発行するJWTは、デフォルトで暗号化されており、A256CBC-HS512アルゴリズム(JWE)を使用しています。適切な暗号化キーを導出するために、AUTH_SECRET
環境変数または渡されたsecret
プロパティを使用します。
注意 Auth.js JWTは、発行した同じアプリで使用することを目的としています。サードパーティAPIでJWT認証が必要な場合は、代わりにIDプロバイダーを利用する必要があります。
インストール
npm install @auth/core
次に、このサブモジュールを@auth/core/jwt
からインポートできます。
使用法
警告 このモジュールはリファクタリング/変更されます。今のところ依存することはお勧めしません。
リソース
DefaultJWT
拡張
Record
<string
,unknown
>
プロパティ
email?
optional email: null | string;
exp?
optional exp: number;
iat?
optional iat: number;
jti?
optional jti: string;
name?
optional name: null | string;
picture?
optional picture: null | string;
sub?
optional sub: string;
GetTokenParams<R>
拡張
GetTokenParamsBase
型パラメータ
型パラメータ | 値 |
---|---|
R extends boolean | false |
プロパティ
cookieName?
optional cookieName: string;
JWTがCookieにある場合、getToken()
が検索する名前。
decode()?
optional decode: (params) => Awaitable<null | JWT>;
パラメータ
パラメータ | 型 |
---|---|
params | JWTDecodeParams |
戻り値
logger?
optional logger: LoggerInstance | Console;
raw?
optional raw: R;
getToken()
は、これがtrue
に設定されている場合、生のJWTを返します
デフォルト
false
req
req: Request | {
headers: Record<string, string> | Headers;
};
JWTをCookieまたはAuthorization
ヘッダーのいずれかに含むリクエスト。
salt?
optional salt: string;
継承元
GetTokenParamsBase.salt
secret?
optional secret: string | string[];
継承元
GetTokenParamsBase.secret
secureCookie?
optional secureCookie: boolean;
cookie名にはセキュアなプレフィックスを使用します。ただし、NEXTAUTH_URL
のURLが http:// である場合、または設定されていない場合(開発環境やテスト環境など)は、プレフィックスなしの名前を使用します。
JWT
JWTセッションを使用している場合、jwt
コールバックによって返されます。
拡張
Record
<string
,unknown
>.DefaultJWT
プロパティ
email?
optional email: null | string;
継承元
exp?
optional exp: number;
継承元
iat?
optional iat: number;
継承元
jti?
optional jti: string;
継承元
name?
optional name: null | string;
継承元
picture?
optional picture: null | string;
継承元
sub?
optional sub: string;
継承元
JWTDecodeParams
プロパティ
salt
salt: string;
JWTの暗号化シークレットを導出するために、secret
と組み合わせて使用します。
secret
secret: string | string[];
JWTの暗号化シークレットを導出するために、salt
と組み合わせて使用します。
注意
シークレットの配列を渡すこともできます。この場合、JWTを正常に復号化できる最初のシークレットが使用されます。これは、既存のセッションを無効にすることなくシークレットをローテーションする場合に便利です。新しいシークレットは配列の先頭に追加する必要があり、すべての新しいセッションで使用されます。
token?
optional token: string;
デコードするAuth.js発行のJWT
JWTEncodeParams<Payload>
型パラメータ
型パラメータ | 値 |
---|---|
ペイロード | JWT |
プロパティ
maxAge?
optional maxAge: number;
Auth.jsが発行するJWTの最大有効期間(秒単位)。
デフォルト
30 * 24 * 60 * 60 // 30 days
salt
salt: string;
JWTの暗号化シークレットを導出するために、secret
と組み合わせて使用します。
secret
secret: string | string[];
JWTの暗号化シークレットを導出するために、salt
と組み合わせて使用します。
token?
optional token: Payload;
JWTペイロード。
JWTOptions
プロパティ
decode()
decode: (params) => Awaitable<null | JWT>;
Auth.js発行のJWTのデコードを制御するには、このメソッドをオーバーライドします。
パラメータ
パラメータ | 型 |
---|---|
params | JWTDecodeParams |
戻り値
encode()
encode: (params) => Awaitable<string>;
Auth.js発行のJWTのエンコードを制御するには、このメソッドをオーバーライドします。
パラメータ
パラメータ | 型 |
---|---|
params | JWTEncodeParams <JWT > |
戻り値
Awaitable
<string
>
maxAge
maxAge: number;
Auth.jsが発行するJWTの最大有効期間(秒単位)。
デフォルト
30 * 24 * 60 * 60 // 30 days
decode()
decode<Payload>(params): Promise<Payload | null>
Auth.js発行のJWTをデコードします。
型パラメータ
型パラメータ | 値 |
---|---|
ペイロード | JWT |
パラメータ
パラメータ | 型 |
---|---|
params | JWTDecodeParams |
戻り値
Promise
<Payload
| null
>
encode()
encode<Payload>(params): Promise<string>
JWTを発行します。デフォルトでは、JWTは "A256CBC-HS512" を使用して暗号化されます。
型パラメータ
型パラメータ | 値 |
---|---|
ペイロード | JWT |
パラメータ
パラメータ | 型 |
---|---|
params | JWTEncodeParams <Payload > |
戻り値
Promise
<string
>
getToken()
getToken<R>(params): Promise<R extends true ? string : JWT | null>
Auth.jsリクエスト(req
)を受け取り、Auth.jsが発行したJWTのペイロード、または生のJWT文字列のいずれかを返します。JWTは、cookieまたは Authorization
ヘッダーのいずれかで検索します。
型パラメータ
型パラメータ | 値 |
---|---|
R extends boolean | false |
パラメータ
パラメータ | 型 |
---|---|
params | GetTokenParams <R > |