# 接入 Sign in with Apple
# 准备工作
你一共需要准备以下内容:
- 在 Apple Developer (opens new window) 注册一个开发者账号。
- 在 Apple Developer Portal 注册你的 iOS 应用,请记录下以下的 ID 和 Key:
Bundle ID
,Apple Team ID
,Key ID
,Signing Key
,之后你需要填入 Authing 控制台表单。 - 在 Authing 控制台配置 Sign in with Apple 社会化连接
# 在 Authing 控制台配置 Sign in with Apple 社会化连接
在 Authing 控制台 连接身份源 -> 社会化登录 页面找到 移动端登录 中的 Sign in with Apple:
请分别填入 Bundle ID
, Apple Team ID
, Key ID
和 Signing Key
:
点击 保存 按钮。
# 使用代码接入
在这里我们推荐阅读 Apple 提供的官方指引:Implementing User Authentication with Sign in with Apple (opens new window),下载示例 Demo 程序:
请确保 Bundle ID 和你在 Apple Developer (opens new window) 中创建的应用 Bundle ID (详情请见: 在 Apple Developer Portal 注册你的 iOS 应用)一致:
# 获取 authorizationCode
修改 LoginViewController.swift
中的 authorizationController
方法,你可以在 appleIDCredential
中获取到 authorizationCode
,使用该 authorizationCode
可以换取用户信息:
if let authorizationCode = String(bytes: appleIDCredential.authorizationCode!, encoding: .utf8) {
print("authorizationCode")
print(authorizationCode)
} else {
print("not a valid UTF-8 sequence")
}
# 换取用户信息
在获取到 authorizationCode
之后,可以调用 Authing 的接口换取该用户的信息:
POST
https://core.authing.cn/connection/social/apple/:userPoolId/callback?app_id=YOUR_APP_ID
使用 authorizationCode 换取用户信息。
# 接下来
获取到用户信息之后,你可以得到登录凭证 token,你可以在后续的 API 请求中携带上此 token, 然后在后端接口中根据此 token 区分不同用户,详情请见验证 token。