Apple Sign in with Apple(苹果授权登录PHP)

Apple Sign in with Apple(苹果授权登录PHP)


提示:首先apple授权登录需要apple开发者账号,申请apple开发者账号的教程网上有很多,这里就不详细讲了。

一、登录Apple Developer

在这里插入图片描述
登录Apple Developer Portal 并点击Certificates, Identifiers and Profiles

二、创建应用ID

从边栏中,选择Identifiers,然后单击蓝色加号图标。

在这里插入图片描述
在第一步中选择App ids
在这里插入图片描述
在下一页中选择描述和 Bundle ID,描述不是很重要随便写写就好了
在这里插入图片描述
在此示例中,我使用的是lol.avocado因为此应用程序将在其上运行的域是avocado.lol

还需要向下滚动列表并选中Sign In with Apple
在这里插入图片描述

三、创建服务ID

服务 ID 将标识你的应用程序的特定实例,并用作 OAuth client_id。
继续创建一个新标识符并选择Services IDs。
在这里插入图片描述
点击下一步,定义用户在登录流程中将看到的应用程序的名称,以及定义成为 OAuth 的标识符client_id。然后继续选中Sign In with Apple复选框。
在这里插入图片描述

在此步骤中,还需要单击“Sign In with Apple”旁边的“Edit”按钮。您将在此处定义运行应用程序的域,以及定义 OAuth 流程期间使用的重定向 URL。
Returns URLs重定向URL
在这里插入图片描述
Primary App ID选择刚刚创建的 App ID,继续并单击保存,然后单击继续并注册,直到此步骤全部确认。

到此,你已经创建了一个用于授权登录的应用。Identifier 是您的 OAuth client_id

四、为客户端身份验证创建私钥

Apple 创建私钥并不是使用简单的使用字符串作为 OAuth客户端secret,其中客户端secret实际上是签名的 JWT。

返回主页面、从侧面导航中选择keys。
在这里插入图片描述
单击蓝色加号图标以注册新密钥。为您的密钥命名,然后选中Sign In with Apple复选框。
在这里插入图片描述
单击配置按钮并选择之前创建的主 App ID。
在这里插入图片描述
Apple会为你生成一个新的私钥,并且只允许你下载一次。确保保存此文件,因为您以后将无法再取回它!下载的文件将以.p8结尾 。
在这里插入图片描述
最后,返回并查看密钥信息,找到在授权登录需要的key ID。

到这一步需要的信息基本上都已经创建完成并拿到了,我们现在开始走后续的授权登录,上代码!!!

五、前端代码

<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',//这里传刚才创建的client_id
        scope : 'name email',//这里是你需要用户授权的数据
        redirectURI: '',//重定向url
        state : 'DE',

    });

    const buttonElement = document.getElementById('sign-in-with-apple-button');
    buttonElement.addEventListener('click', () => {
        AppleID.auth.signIn();
    });
</script>

授权成功后会自动已post的方式跳转到redirect_url,并携带以下参数:

    {
    	"state":"",
    	"code":"c503f502678114d2280b2b4368da5b8bf.0.rrtuz.ATttQHZoLisrekaOatIpaw",//授权码
    	"id_token":"xxxxxxxxxxxxxxxxxxx",//id_token,这个使用不到,因为还需要用code去请求token
    	"user": "{"name":{"firstName":"xxxx","lastName":"xxxxx"},"email":"xxxx"}"//授权的用户信息
    }

六、PHP代码

下载apple授权登录客户端

git地址:https://github.com/liushaobo-maker/sign-in-with-apple-php-client

使用方法:

<?php
	$client = new AppleClient([
		'client_id' => $config['client_id'], // 这里就是应用的APPID
		'redirect_uri' => $this->_redirectUri,
	]);
	$token = $client->fetchAccessToken($input['code']);//这里是刚才请求过来的code
	$accountInfo = $client->getUser()->getUserInfo();
?>

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值