查了不少资料,发现中文的苹果登录的开发信息不够用,官方的说明都只有英文的,这里记录一下过程
首先得有个开发者账号
1、打开开发者中心
2、从左边菜单找到 Identifiers
3、在右边找到开发的app,没有就新建一个
当然这里也可以自己重写建立一个,但没有直接在 XCode 中生成项目来的快
4、无论是新建还是生成,这里都可以在右边列表看到app,点进去查看已启用的功能
5、勾选今日主角 Sign in with Apple
6、然后在Edit中选取了单个app登录
最下面填上回调地址
7、接下来新建一个新的 identifier,注意是 Services IDs
因为我们要验证服务器,让web端也能使用苹果登录
8、注册完成便可修改
9、修改便可填入域名和子域名
确保 Primary App ID 是你要选用的app
注意回调地址那里的链接必须要有 https 开头
10、设置完成,页面显示无误后可以选取左边的 Key
11、注册一个新的认证key
12、先选这个key关联到你的主app,然后点击continue,
13、点击register后key就生成了,现在可以下载
记得要记下这个keyID,待会儿其他地方要用到
14、回到账户主界面,选择Membership,查看 Team ID
现在,你获得了 service ID, redirect URL, team ID, key ID, and private key. 接下来就可以开始第二部分 Sign In with Apple REST API.
15、网页登录
但我们要的是在网页端登录,所以这里先附上代码
···
<button id="sign-in-with-apple-button"> Sign In with Apple </button>
<script type="text/javascript" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"></script>
<script type="text/javascript">
AppleID.auth.init({
clientId : 'xxxx',
scope : 'email',
redirectURI: 'https://dogfightx.com/',
state : 'DE'
});
const buttonElement = document.getElementById('sign-in-with-apple-button');
buttonElement.addEventListener('click', () => {
AppleID.auth.signIn();
});
</script>
···
这里有个要非常注意的地方,就是 clientId 是申请的serveic IDs 中的那个 identifier
这个 redirectURI 是已经在该 identifier 下注册的回调地址,乱填可是会提示URL错误的
OK,此时在网页界面就可以正常使用了
OK,接下来就是服务器验证苹果发回来的Token,得到用户的email作为唯一ID注册账号
此
.