From 1d6a2ab0b3908cc299db958b8a7046f3eb34b251 Mon Sep 17 00:00:00 2001 From: liutk <961510893@qq.com> Date: Sat, 18 May 2024 19:29:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=BE=AE=E4=BF=A1=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E6=8E=88=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/AuthController.php | 32 ++++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Api/AuthController.php b/app/Http/Controllers/Api/AuthController.php index de1414d..8b0a8e3 100644 --- a/app/Http/Controllers/Api/AuthController.php +++ b/app/Http/Controllers/Api/AuthController.php @@ -2,20 +2,44 @@ namespace App\Http\Controllers\Api; +use Cache; use Carbon\Carbon; use Illuminate\Http\Request; use App\Services\Api\UserService; use App\Http\Resources\Api\UserResource; +use Overtrue\LaravelWeChat\EasyWeChat; +use Illuminate\Support\Arr; class AuthController extends ApiController { protected string $serviceName = UserService::class; - public function codeToSession() + public function codeToSession(Request $request) { - //微信小程序-todo - // dd(); - $openid = '132465'; + $request->validate([ + 'code' => 'required', + ], [ + 'code.required' => '授权码必填', + ]); + //绑定OPenid + $code = $request->input('code'); + $app = EasyWeChat::miniApp(); + $utils = $app->getUtils(); + + try { + $response = $utils->codeToSession($code); + }catch (\Throwable $th) { + return $this->error($th->getMessage()); + } + + if (Arr::get($response, 'errcode')) { + return $this->error(Arr::get($response, 'errmsg')); + } + + $openid = Arr::get($response, 'openid'); + $sessionKey = Arr::get($response, 'session_key'); + Cache::put($openid, $sessionKey, 48*60*60); + $user = $this->service->register($openid); $apiToken = $this->service->login($user);