<?php namespace App\Modules\Mini\Controllers; use App\Base\BaseController; use App\Models\User\User; use App\Modules\Mini\Services\AuthService; use App\Modules\Mini\Services\WechatService; use Illuminate\Support\Facades\Auth; class AuthController extends BaseController { public function codeToSession() { $params = $this->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() { $params = $this->valid([ "iv" => "required", "encrypted_data" => "required", "session_key" => "required", ]); app(WechatService::class)->decryptPhone($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 profile() { /** @var User $user */ $user = Auth::user(); return $this->ok([ "id" => $user->id, "token" => app(AuthService::class)->encryptToken($user->id), "name" => $user->name, "avatar" => $user->avatar, "company" => [ "id" => optional($user->company)->id ?? 0, "name" => optional($user->company)->name ?? "", ], ]); } public function test() { $id = request()->input("id"); return $this->ok(app(AuthService::class)->encryptToken($id)); } }