APP集成苹果账号JWT验证授权登录,使用Laravel框架集成
官方文档:https://developer.apple.com/documentation/sign_in_with_apple
第三方拓展github:https://github.com/GriffinLedingham/php-apple-signin (这个拓展我在用的时候出现了很多问题,可能是由于挺长时间没有更新,我在此基础上改了一些地方)
1.首先APP客户端集成苹果授权,授权后可以获取到以下信息(和QQ微信第三方登录授权类似):
- userID: 用户唯一标识,该值在同一个开发者账号下的所有 App 下是一样的,开发者可以用该唯一标识符与自己后台系统的账号体系绑定起来
- email: 邮箱,只有第一次授权返回邮箱信息,之后登录不再返回
- fullName: 用户名称,只有第一次授权返回用户信息,之后登录不再返回
- identityToken: 授权用户的JWT凭证
2.下载拓展包,Laravel框架app目录下创建lib目录,将拓展包解压后放到app\lib目录下:
拓展包下载地址:https://files.cnblogs.com/files/52lnamp/apple.7z
3.LoginController控制器中集成:
namespace App\Http\Controllers; use App\lib\apple\ASDecoder; use Illuminate\Http\Request; class LoginController extends Controller{ public function jwtAppleLogin(Request $request) { $userId = $request->input('userId'); $identityToken = $request->input('identityToken'); $email = $request->input('email', ''); $fullName = $request->input('fullName', ''); $appleSignInPayload = ASDecoder::getAppleSignInPayload($identityToken); $isValid = $appleSignInPayload->verifyUser($userId); if ($isValid){ // 验证通过后的逻辑 } } }