跳到主要内容

Apple 登录

使用 Apple 账号登录 Web 端或 iOS 端应用。不支持小程序端。

步骤 1:复制回调地址​

配置 Service ID 时,Return URL 要填云开发的回调地址。先复制,并保持该页面打开。

  1. 打开 云开发平台/身份认证/登录方式。

  2. 找到 Apple 登录,单击“编辑”。

    编辑 Apple 登录

  3. 在“身份源基础配置”中复制回调地址。

    复制回调地址

步骤 2:在 Apple Developer 配置​

记录 Team ID​

打开 Membership,记录 Team ID。

Team ID

创建 App ID​

iOS 端使用 App ID。记下其中的 Bundle ID。

  1. 打开 Identifiers,单击“+”。

    新建 Identifier

  2. 选择 App IDs,单击“Continue”。

    选择 App IDs

  3. 选择应用类型,单击“Continue”。

    选择应用类型

  4. 填写“Description”和“Bundle ID”,勾选“Sign in with Apple”。记下 Bundle ID。

    填写 Bundle ID

  5. 单击“Continue”,确认信息后单击“Register”。

    注册 App ID

创建 Service ID​

Web 端使用 Service ID。控制台的 Client ID 填这个值。

  1. 打开 Services IDs,单击“+”,选择 Services IDs,单击“Continue”。

    选择 Services IDs

  2. 填写“Description”和“Identifier”,单击“Continue”,再单击“Register”。

    填写 Service ID

    确认创建 Service

  3. 打开刚创建的 Service,勾选“Sign in with Apple”,单击“Configure”。

    配置 Sign in with Apple

  4. “Primary App ID”选择刚创建的 App ID。

  5. “Domains and Subdomains”填回调地址中的域名。有自定义域名时一并填入。

    填写域名与回调

    填写域名

  6. “Return URLs”填步骤 1 复制的回调地址。

  7. 依次单击“Save”、“Continue”、“Register”,记下 Service ID。

    保存 Service ID

创建密钥​

Client Secret 用这把密钥签发。

  1. 打开 Keys,单击“+”。

    新建密钥

  2. 填写名称,勾选“Sign in with Apple”,单击“Configure”。“Primary App ID”选择刚创建的 App ID。

    勾选 Sign in with Apple

    选择 Primary App ID

  3. 依次单击“Save”、“Continue”、“Register”。记下 Key ID,单击“Download”下载 .p8 私钥。

    下载私钥

注意

.p8 私钥只能下载一次。丢失后只能新建密钥。

步骤 3:生成 Client Secret​

Client Secret 是用 .p8 私钥签发的 JWT(JSON Web Token)。

注意

有效期最长 180 天。到期前重新生成,并更新控制台中的 Client Secret。

安装依赖:

pip3 install PyJWT cryptography

替换下面四项后运行,复制输出的 JWT。

import time
import jwt

TEAM_ID = "" # Membership 页面的 Team ID
CLIENT_ID = "" # Service ID
KEY_ID = "" # Keys 页面的 Key ID
PRIVATE_KEY_PATH = "" # .p8 文件路径

with open(PRIVATE_KEY_PATH) as f:
private_key = f.read()

now = int(time.time())
client_secret = jwt.encode(
{
"iss": TEAM_ID,
"iat": now,
"exp": now + 86400 * 180,
"aud": "https://appleid.apple.com",
"sub": CLIENT_ID,
},
private_key,
algorithm="ES256",
headers={"kid": KEY_ID},
)
print(client_secret)
配置项取值
TEAM_IDMembership 页面的 Team ID
CLIENT_IDService ID
KEY_IDKeys 页面的 Key ID
PRIVATE_KEY_PATH.p8 文件路径

步骤 4:启用 Apple 登录​

回到步骤 1 的配置页,填入身份源信息后保存并启用。

Apple 登录配置入口

进入编辑

字段填写内容
Client ID步骤 2 创建的 Service ID
Client Secret步骤 3 输出的 JWT
Scope默认 openid email name,可按需修改

填写 Client ID 与 Client Secret

完成账号关联,保存身份源并启用。

账号关联