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
擴充
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;
如果將此設定為 true
,getToken()
將返回原始 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;
與 secret
結合使用,以導出 JWT 的加密密鑰。
secret
secret: string | string[];
與 salt
結合使用,以導出 JWT 的加密密鑰。
注意
您也可以傳遞一個密鑰陣列,在這種情況下,將使用第一個成功解密 JWT 的密鑰。這對於輪換密鑰而不使現有會話失效非常有用。較新的密鑰應添加到陣列的開頭,這將用於所有新的會話。
token?
optional token: string;
要解碼的 Auth.js 發出的 JWT
JWTEncodeParams<Payload>
類型參數
類型參數 | 值 |
---|---|
Payload | JWT |
屬性
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 解碼。
參數
參數 | 類型 |
---|---|
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。
類型參數
類型參數 | 值 |
---|---|
Payload | JWT |
參數
參數 | 類型 |
---|---|
params | JWTDecodeParams |
返回
Promise
<Payload
| null
>
encode()
encode<Payload>(params): Promise<string>
發出 JWT。預設情況下,JWT 使用「A256CBC-HS512」加密。
類型參數
類型參數 | 值 |
---|---|
Payload | JWT |
參數
參數 | 類型 |
---|---|
params | JWTEncodeParams <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 boolean | false |
參數
參數 | 類型 |
---|---|
params | GetTokenParams <R > |