跳至内容
从 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;

如果将其设置为 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 回调返回

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有效载荷。


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的有效载荷或原始JWT字符串。我们会在cookie或Authorization头文件中查找JWT。

类型参数

类型参数
R extends booleanfalse

参数

参数类型
paramsGetTokenParams<R>

返回值

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

Auth.js © Balázs Orbán 和团队 -2024