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 的请求,该 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有效载荷。
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的有效载荷或原始JWT字符串。我们会在cookie或Authorization
头文件中查找JWT。
类型参数
类型参数 | 值 |
---|---|
R extends boolean | false |
参数
参数 | 类型 |
---|---|
params | GetTokenParams <R > |