valid([ "code" => "required", ]); $sessionData = app(WechatService::class)->codeToSession($params['code']); $token = app(AuthService::class)->authByOpenid($sessionData['openid']); return $this->ok([ "token" => $token, "openid" => $sessionData['openid'], "sessionKey" => $sessionData['session_key'], ]); } public function decryptUserInfo() { $params = $this->valid([ "iv" => "required", "encrypted_data" => "required", "session_key" => "required", ]); app(WechatService::class)->decryptUserInfo($params); /** @var User $user */ $user = \Auth::user(); return $this->ok([ "token" => app(AuthService::class)->encryptToken($user->id), "name" => $user->name, "phone" => $user->phone, ]); } public function decryptPhone() { return $this->ok([ "token" => "token", "name" => "", "phone" => "", ]); } public function profile() { return $this->ok([ "id" => 1, "token" => "token", "name" => "用户名称", "avatar" => Image::imageUrl(), "company" => [ "id" => 1, "name" => "公司名称", ], ]); } }