WebApp快捷打包
AppleID 授权登录
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20241115.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

♦ 1. Sign In with Apple 苹果 ID 授权登录;

♦ 2. 接入步骤:

♦ 2.1 苹果证书标识符(Identifier)需勾选 “Sign In with Apple” 功能(见示例截图),上传证书并生成苹果版安装包;

♦ 2.2 调用 checkSuport 接口检查当前设备是否支持苹果授权登录,如果支持则进入下一步;

♦ 2.3 调用 request 发起苹果 ID 授权登录,将回调的 data 提交到您的服务器 验证PHP SDK 授权信息;

checkSupport 检查设备是否支持苹果 ID 授权登录

//高于或等于 iOS 13 才支持苹果 ID 授权登录
jsBridge.sia.checkSupport(function(succ, data) {
  alert(succ ? "支持" : "不支持");
});

request 发起苹果 ID 授权登录

//发起授权登录,回调返回 data 是 JSON 数据
//请提交到您的服务器 验证 授权信息
//如果出现 未完成注册(Sign-Up Not Completed) 错误,请前往 服务设置(Services) -> Sign in with Apple for Email Communication -> 添加 Email Sources,参考 这里。
jsBridge.sia.request(function(succ, data) {
  if (succ) {
    var str = JSON.stringify(data);
    alert("授权成功:\n" + str);
    jsBridge.setClipboardText(str);
    alert("已复制到剪贴板");
  } else {
    alert("取消了授权登录或不支持");
  }
});

//授权成功时回调函数返回的 data 示例数据
var exampleData = {
    //jwt Token 请在服务器端验证此 Token 是否有效
    //验证通过后使用此 Token 的 claims.sub 作为用户唯一标识
    "identityToken": "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnVwaW4xNTguYXBwLng4IiwiZXhwIjoxNjI4MzI1Mzc4LCJpYXQiOjE2MjgyMzg5NzgsInN1YiI6IjAwMTIwNi43MjA3NDI2YWM5MjA0MzcyOGEzYTZiZDA3NzkwYTdlNy4wNzQ1IiwiY19oYXNoIjoiemxMMXhHNWJsS0dQMEszRVRVZFVudyIsImVtYWlsIjoiZDIyMjhtNGo5bkBwcml2YXRlcmVsYXkuYXBwbGVpZC5jb20iLCJlbWFpbF92ZXJpZmllZCI6InRydWUiLCJpc19wcml2YXRlX2VtYWlsIjoidHJ1ZSIsImF1dGhfdGltZSI6MTYyODIzODk3OCwibm9uY2Vfc3VwcG9ydGVkIjp0cnVlfQ.iXbtj7rG4dBuyPNETEkc25MkWIF1P6Usfnyu2BByQQFv9dQ0vKvz_GbOLm2pjr19Sszp_Y6osiGNg3O5e1hKK3RJyVY4aeoMgdd4v6nDkuu0Qdetc0BPVYk_K2VSxpi80Gd40h6DScGSbQI9g8iJJ7b_YCCUpjxuS54HR5QUyCduV8Fwz_NijiYn8J5P0cARdNBaCvqOENuw8gVN2icWb3h6IUP9HDa89YndcWu93xHXeCDKSzu043PjhpkUh4E_F5EltElFoGZiRKXCBwPS5YW4zD_aD7by_n5U-Y2TleeDKzTyPu6NBkvfxN9vYaZEvM0QmXKMBH9J3-MZpo9lOg",
    "realUserStatus": "Unknown",
    //授权码
    "authorizationCode": "c558352f4c2b64a45afea4b612c6d9827.0.srsqw.ZG8w9UusG2jZ8Q4_x-2tVg",
    //用户姓名数据(注意只有第一次登录时才有,以后都会返回空数据)
    "fullName": {
        //家族姓氏
        "familyName": "张",
        //前缀
        "namePrefix": "",
        //名字
        "givenName": "三",
        //后缀
        "nameSuffix": "",
        //中名
        "middleName": "",
        //昵称
        "nickname": "永远的神"
    },
    //电子邮箱
    "email": "aaa@bbb.com",
    //状态
    "state": "",
    //用户唯一标识(与解码 jwt 格式 identityToken 出来的 claims.sub 字段相同)
    "user": "001206.7207426ac92043728a3a6bd07790a7e7.0745"
};
/*
解码 jwt 格式 identityToken 的示例 在线解码

=== header
{
 kid: "eXaunmL",
 //签名算法
 alg: "RS256"
}.
=== claims
{
 iss: "https://appleid.apple.com",
 aud: "com.upin158.app.x8",
 exp: 1628325378,
 iat: 1628238978,
 //用户唯一标识
 sub: "001206.7207426ac92043728a3a6bd07790a7e7.0745",
 c_hash: "zlL1xG5blKGP0K3ETUdUnw",
 email: "d2228m4j9n@privaterelay.appleid.com",
 email_verified: "true",
 is_private_email: "true",
 auth_time: 1628238978,
 nonce_supported: true
}.
=== 签名数据 
[signature]

*/