设置 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”并点击“继续”。
- 填写“描述”和“标识符”(例如,
Logto Test和io.logto.test),然后点击“继续”。 - 仔细检查信息并点击“注册”。
为你的标识符启用 Apple 登录
点击你刚创建的标识符。在详情页面勾选“Sign in with Apple”并点击“配置”。
在打开的模态框中,选择你刚启用 Apple 登录的 App ID。
输入你的 Logto 实例的域名,不带协议和端口,例如,your.logto.domain;然后输入“返回 URL”(即重定向 URI),这是带有 /callback/${connector_id} 的 Logto URL,例如,https://your.logto.domain/callback/apple-universal。你可以在 Admin Console 中创建 Apple 连接器后获取随机生成的 connector_id。
点击“下一步”然后“完成”以关闭模态框。点击右上角的“继续”,然后点击“保存”以保存你的配置。
Apple 不允许使用 HTTP 协议和 localhost 域名的返回 URL。
如果你想在本地测试,你需要编辑 /etc/hosts 文件,将 localhost 映射到自定义域名,并设置本地 HTTPS 环境。mkcert 可以帮助你设置本地 HTTPS。
配置权限 (Scope)
要从 Apple 获取用户的电子邮件,你需要将权限 (Scope) 配置为包含 email。对于电子邮件和姓名,你可以使用 name email 作为权限 (Scope)。有关更多信息,请参阅 Apple 官方文档。
用户可能会选择隐藏他们的电子邮件地址。在这种情况下,你将无法获取真实的电子邮件地址。相反,将返回类似 random@privaterelay.appleid.com 的电子邮件地址。
配置权限 (Scope) 的注意事项
如果你在应用中配置了在用户已通过 Apple 登录后请求其电子邮件地址,那么即使这些现有用户再次使用 Apple ID 登录,你也无法获取他们的电子邮件地址。为了解决这个问题,你需要引导用户访问 Apple ID 账户管理页面,并在“使用 Apple 登录”部分移除你的应用。这可以在你的应用详情页选择“停止使用 Apple 登录”来完成。
例如,如果你的应用请求了用户的电子邮件和姓名(email name 权限 (scope)),那么新用户首次登录时看到的用户授权页面 (Consent screen) 应该类似于这样:
开发者讨论见 这里。
测试 Apple 连接器
就是这样。Apple 连接器应该可以在 Web 和原生应用中使用。别忘了在 注册和登录中启用社交连接器。