$code]; } /** * 用户登录 */ public function login(string $mobile, string $code) { // 验证验证码 $cacheCode = Cache::get("verify_code:{$mobile}"); if (!$cacheCode || $cacheCode != $code) { throw new \Exception('验证码错误'); } // 查找或创建用户 $user = MemberUser::firstOrCreate( ['mobile' => $mobile], [ 'state' => 'enable', 'register_area' => request()->header('area_code') ] ); // 生成token $token = $user->createToken('auth-token')->plainTextToken; return [ 'token' => $token, 'user' => $user ]; } /** * 微信登录 */ public function wxLogin(string $openid) { // 查找或创建微信用户 $socialAccount = MemberSocialAccount::firstOrCreate( [ 'platform' => 'WECHAT', 'social_id' => $openid ] ); $user = $socialAccount->user; if (!$user) { $user = MemberUser::create([ 'state' => 'enable', 'register_area' => request()->header('area_code') ]); $socialAccount->update(['user_id' => $user->id]); } // 生成token $token = $user->createToken('auth-token')->plainTextToken; return [ 'token' => $token, 'user' => $user ]; } /** * 用户退出 */ public function logout() { $user = Auth::user(); $user->tokens()->delete(); return ['message' => '退出成功']; } /** * 用户注销 */ public function deleteAccount() { $user = Auth::user(); if (!$user || $user->state !== 'enable') { throw new \Exception('用户状态异常'); } $user->state = 'disable'; $user->save(); $user->delete(); $user->tokens()->delete(); return ['message' => '账号已注销']; } }