设置 Apple 社交登录
Logto 的 Apple 社交登录官方连接器。
本指南假设你对 Logto 连接器 (Connectors) 有基本的了解。对于不熟悉的人,请参考 连接器 (Connectors) 指南以开始了解。
开始使用
如果你不了解连接器的概念或不知道如何将此连接器添加到你的登录体验中,请参阅 Logto 教程。
如果你的应用中有其他社交登录方法,AppStore 要求必须提供 Apple 登录。如果你也提供 Android 应用,在 Android 设备上支持 Apple 登录也是很好的选择。
在继续之前,你需要注册 Apple Developer Program。
为你的应用启用 Apple 登录
即使你只想在 web 应用上实现 Apple 登录,你仍然需要拥有一个现有的应用来融入 AppStore 生态系统(即拥有一个有效的 App ID)。
你可以通过 Xcode -> 项目设置 -> 签名和功能,或者访问 Certificates, Identifiers & Profiles 来完成。
有关更多信息,请参阅 Apple 官方文档中的“启用 App ID”部分。
创建标识符
- 访问 Certificates, Identifiers & Profiles,然后点击“Identifier”旁边的“+”按钮。
- 在“注册新标识符”页面,选择“Services IDs”并点击“Continue”。
- 填写“Description”和“Identifier”(例如,
Logto Test
和io.logto.test
),然后点击“Continue”。 - 仔细检查信息并点击“Register”。
为你的标识符启用 Apple 登录
点击你刚创建的标识符。在详情页面勾选“Sign in with Apple”并点击“Configure”。
在打开的模态框中,选择你刚刚启用 Apple 登录的 App ID。
输入你的 Logto 实例的域名,不带协议和端口,例如,your.logto.domain
;然后输入“Return URL”(即重定向 URI),这是带有 /callback/${connector_id}
的 Logto URL,例如,https://your.logto.domain/callback/apple-universal
。你可以在 Admin Console 中创建 Apple 连接器后获取随机生成的 connector_id
。
点击“Next”,然后点击“Done”关闭模态框。点击右上角的“Continue”,然后点击“Save”保存你的配置。
Apple 不允许使用 HTTP 协议和 localhost
域名的 Return URL。
如果你想在本地测试,你需要编辑 /etc/hosts
文件,将 localhost 映射到自定义域名,并设置本地 HTTPS 环境。mkcert 可以帮助你设置本地 HTTPS。
配置权限
要从 Apple 获取用户的电子邮件,你需要将权限配置为包含 email
。对于电子邮件和姓名,你可以使用 name email
作为权限。有关更多信息,请参阅 Apple 官方文档。
用户可能会选择隐藏他们的电子邮件地址。在这种情况下,你将无法获取真实的电子邮件地址,而是会返回类似 [email protected]
的电子邮件地址。
配置权限 (Scope) 的陷阱
如果你已配置应用程序在用户使用 Apple 登录后请求他们的电子邮件地址,那么即使他们再次使用 Apple ID 登录,你也无法检索这些现有用户的电子邮件地址。为了解决这个问题,你需要指示用户访问 Apple ID 账户管理页面 并从“使用 Apple 登录”部分中移除你的应用程序。这可以通过在应用程序的详细信息页面上选择“停止使用 Apple 登录”来完成。
例如,如果你的应用程序请求用户的电子邮件和姓名(email name
权限),那么新用户在首次登录时看到的用户授权页面应该类似于这样:
请参阅开发者讨论 这里。
测试 Apple 连接器
就是这样。Apple 连接器应该可以在网页和原生应用中使用。别忘了在登录体验中启用社交连接器。