Laravel 整合IOS苹果授权登录(JWT验证模式)

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){ // 验证通过后的逻辑
            
    }
   }
}

猜你喜欢

转载自www.cnblogs.com/52lnamp/p/12930874.html