跳到內容
正在從 NextAuth.js v4 遷移?請閱讀 我們的遷移指南.

jwt

此模組包含編碼和解碼 Auth.js 發行和使用的 JWT 的函數和類型。

Auth.js 發行的 JWT 預設為加密,使用 A256CBC-HS512 演算法 (JWE)。它使用 AUTH_SECRET 環境變數或傳遞的 secret 屬性來產生合適的加密金鑰。

注意 Auth.js JWT 旨在由發行它們的相同應用程式使用。如果您需要為您的第三方 API 進行 JWT 身份驗證,則應改為依賴您的身份提供者。

安裝

npm install @auth/core

然後您可以從 @auth/core/jwt 導入此子模組。

用法

⚠️

警告 此模組被重構/更改。我們不建議現在就依賴它。

資源

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;

GetTokenParams<R>

擴充

  • GetTokenParamsBase

類型參數

類型參數
R extends booleanfalse

屬性

cookieName?

optional cookieName: string;

如果 JWT 在 cookie 中,getToken() 應該尋找的名稱是什麼。

decode()?

optional decode: (params) => Awaitable<null | JWT>;
參數
參數類型
paramsJWTDecodeParams
返回

Awaitable<null | JWT>

logger?

optional logger: LoggerInstance | Console;

raw?

optional raw: R;

如果將此設定為 truegetToken() 將返回原始 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 回調函數返回

jwt 回調函數

繼承自

屬性

email?

optional email: null | string;
繼承自

DefaultJWT.email

exp?

optional exp: number;
繼承自

DefaultJWT.exp

iat?

optional iat: number;
繼承自

DefaultJWT.iat

jti?

optional jti: string;
繼承自

DefaultJWT.jti

name?

optional name: null | string;
繼承自

DefaultJWT.name

picture?

optional picture: null | string;
繼承自

DefaultJWT.picture

sub?

optional sub: string;
繼承自

DefaultJWT.sub


JWTDecodeParams

屬性

salt

salt: string;

secret 結合使用,以導出 JWT 的加密密鑰。

secret

secret: string | string[];

salt 結合使用,以導出 JWT 的加密密鑰。

注意

您也可以傳遞一個密鑰陣列,在這種情況下,將使用第一個成功解密 JWT 的密鑰。這對於輪換密鑰而不使現有會話失效非常有用。較新的密鑰應添加到陣列的開頭,這將用於所有新的會話。

token?

optional token: string;

要解碼的 Auth.js 發出的 JWT


JWTEncodeParams<Payload>

類型參數

類型參數
PayloadJWT

屬性

maxAge?

optional maxAge: number;

Auth.js 發出的 JWT 的最大有效期,以秒為單位。

預設值
30 * 24 * 60 * 60 // 30 days

salt

salt: string;

secret 結合使用,以導出 JWT 的加密密鑰。

secret

secret: string | string[];

salt 結合使用,以導出 JWT 的加密密鑰。

token?

optional token: Payload;

JWT 的 Payload。


JWTOptions

屬性

decode()

decode: (params) => Awaitable<null | JWT>;

覆蓋此方法以控制 Auth.js 發出的 JWT 解碼。

參數
參數類型
paramsJWTDecodeParams
返回

Awaitable<null | JWT>

encode()

encode: (params) => Awaitable<string>;

覆蓋此方法以控制 Auth.js 發出的 JWT 編碼。

參數
參數類型
paramsJWTEncodeParams<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。

類型參數

類型參數
PayloadJWT

參數

參數類型
paramsJWTDecodeParams

返回

Promise<Payload | null>


encode()

encode<Payload>(params): Promise<string>

發出 JWT。預設情況下,JWT 使用「A256CBC-HS512」加密。

類型參數

類型參數
PayloadJWT

參數

參數類型
paramsJWTEncodeParams<Payload>

返回

Promise<string>


getToken()

getToken<R>(params): Promise<R extends true ? string : JWT | null>

獲取 Auth.js 請求 (req),並返回 Auth.js 發出的 JWT 的 Payload,或原始 JWT 字串。我們會從 Cookie 或 Authorization 標頭中尋找 JWT。

類型參數

類型參數
R extends booleanfalse

參數

參數類型
paramsGetTokenParams<R>

返回

Promise<R extends true ? string : JWT | null>

Auth.js © Balázs Orbán 和團隊 -2024