跳至内容
从 NextAuth.js v4 迁移?请阅读 我们的迁移指南.

providers/apple

使用Apple 集成的内置登录功能。

AppleNonConformUser

这是 Apple 首次在用户同意使用应用程序时发送的 user 查询参数的形状。

https://developer.apple.com/documentation/sign_in_with_apple/request_an_authorization_to_the_sign_in_with_apple_server#4066168

属性

email

email: string;

name

name: {
  firstName: string;
  lastName: string;
};
firstName
firstName: string;
lastName
lastName: string;

AppleProfile

使用配置文件回调时,Apple 返回的用户配置文件。

扩展

属性

at_hash

at_hash: string;

aud

aud: string;

受众注册声明标识身份令牌的预期接收方。由于令牌 предназначено для вашего приложения, значение — это client_id из вашего developer account.

auth_time

auth_time: number;

email

email: string;

表示用户电子邮件地址的字符串值。电子邮件地址是用户的真实电子邮件地址,还是代理地址,这取决于他们是否使用私人电子邮件中继服务。

email_verified

email_verified: true | "true";

一个字符串或布尔值,指示服务是否已验证电子邮件。此声明的值始终为 true,因为服务器只返回已验证的电子邮件地址。该值可以是字符串 ("true") 或布尔值 (true)。

exp

exp: number;

过期时间注册声明标识身份令牌过期的日期和时间,以自 UTC 时间纪元以来的秒数表示。验证令牌时,该值必须大于当前日期/时间。

iat

iat: number;

已发出时间注册声明指示 Apple 发出身份令牌的时间,以自 UTC 时间纪元以来的秒数表示。

is_private_email

is_private_email: boolean | "true" | "false";

一个字符串或布尔值,指示用户共享的电子邮件是否为代理地址。该值可以是字符串 ("true""false") 或布尔值 (truefalse)。

iss

iss: "https://appleid.apple.com";

发行者注册声明标识发出身份令牌的委托人。由于 Apple 生成了令牌,因此该值为 https://appleid.apple.com

nonce

nonce: string;

一个字符串值,用于将客户端会话与身份令牌相关联。此值可减轻重放攻击,并且仅在授权请求期间传递时才会出现。

nonce_supported

nonce_supported: boolean;

一个布尔值,指示交易是否在支持 nonce 的平台上进行。如果您在授权请求中发送了 nonce,但在身份令牌中没有看到 nonce 声明,请检查此声明以确定如何继续。如果此声明返回 true,您应将 nonce 视为强制性并失败交易;否则,您可以继续将 nonce 视为选项。

real_user_status

real_user_status: 0 | 1 | 2;

一个整数值,指示用户是否看起来是真人。使用此声明的值来减少欺诈。可能的值为:0(或不受支持)、1(或未知)、2(或可能真实)。有关更多信息,请参阅 ASUserDetectionStatus。此声明仅在 iOS 14 及更高版本、macOS 11 及更高版本、watchOS 7 及更高版本、tvOS 14 及更高版本上存在;该声明不存在于基于 Web 的应用程序中,也不受其支持。

sub

sub: string;

主题注册声明标识身份令牌的主题。由于此令牌 предназначено для вашего приложения, значение — это уникальный идентификатор пользователя.

transfer_sub

transfer_sub: string;

表示用于将用户迁移到您的团队的迁移标识符的字符串值。此声明仅在您将应用程序迁移后的 60 天迁移期间存在。有关更多信息,请参阅 将新应用程序和用户引入您的团队

user?

optional user: AppleNonConformUser;

default()

default(config): OAuthConfig<AppleProfile>

设置

回调 URL

https://example.com/auth/callback/apple

配置

import Apple from "@auth/core/providers/apple"
...
providers: [
  Apple({
    clientId: env.AUTH_APPLE_ID,
    clientSecret: env.AUTH_APPLE_SECRET,
  })
]
...

资源

说明

  • Apple 不支持 localhost/http URL。您只能使用具有 HTTPS 的实时 URL。
  • Apple 要求客户端密钥为 JWT。我们提供了一个 CLI 命令 npx auth add apple,以帮助您生成一个。这将提示您输入必要的信息,并在最后将 AUTH_APPLE_IDAUTH_APPLE_SECRET 添加到您的 .env 文件中。
  • Apple 提供最少的用户信息。它返回用户的电子邮件和姓名,但仅在用户首次同意该应用时返回。
  • Apple 提供商不支持为多个部署设置相同的客户端(如 预览部署)。
  • Apple 提供商附带一个 默认配置。要覆盖您的用例的默认设置,请查看 自定义内置 OAuth 提供商

帮助

如果您认为在默认配置中发现了错误,您可以 打开一个问题

Auth.js 严格遵守规范,它对提供商的任何偏离规范的行为不承担任何责任。您可以打开一个问题,但如果问题是非规范合规性,我们可能不会寻求解决方案。您可以在 Discussions 中寻求更多帮助。

参数

参数类型
配置OAuthUserConfig<AppleProfile>

返回值

OAuthConfig<AppleProfile>

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