providers/apple
AppleNonConformUser
这是 Apple 首次在用户同意使用应用程序时发送的 user
查询参数的形状。
见
属性
email: string;
name
name: {
firstName: string;
lastName: string;
};
firstName
firstName: string;
lastName
lastName: string;
AppleProfile
使用配置文件回调时,Apple 返回的用户配置文件。
扩展
Record
<string
,any
>
属性
at_hash
at_hash: string;
aud
aud: string;
受众注册声明标识身份令牌的预期接收方。由于令牌 предназначено для вашего приложения, значение — это client_id
из вашего developer account.
auth_time
auth_time: number;
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"
) 或布尔值 (true
或 false
)。
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 登录 概览
- 使用 Apple 登录 REST API
- 如何获取 Apple ID 服务器上的用户信息
- 了解更多关于 OAuth 的信息
- 创建客户端密钥
说明
- Apple 不支持 localhost/http URL。您只能使用具有 HTTPS 的实时 URL。
- Apple 要求客户端密钥为 JWT。我们提供了一个 CLI 命令
npx auth add apple
,以帮助您生成一个。这将提示您输入必要的信息,并在最后将AUTH_APPLE_ID
和AUTH_APPLE_SECRET
添加到您的.env
文件中。 - Apple 提供最少的用户信息。它返回用户的电子邮件和姓名,但仅在用户首次同意该应用时返回。
- Apple 提供商不支持为多个部署设置相同的客户端(如 预览部署)。
- Apple 提供商附带一个 默认配置。要覆盖您的用例的默认设置,请查看 自定义内置 OAuth 提供商。
帮助
如果您认为在默认配置中发现了错误,您可以 打开一个问题。
Auth.js 严格遵守规范,它对提供商的任何偏离规范的行为不承担任何责任。您可以打开一个问题,但如果问题是非规范合规性,我们可能不会寻求解决方案。您可以在 Discussions 中寻求更多帮助。
参数
参数 | 类型 |
---|---|
配置 | OAuthUserConfig <AppleProfile > |