AuthService.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * @Name
  4. * @Description
  5. * @Author 刘学玺
  6. * @Date 2024/3/25 17:11
  7. */
  8. namespace App\Http\Services\Frontend\Client\Common;
  9. use App\Enums\Common\Status;
  10. use App\Exceptions\ApiException;
  11. use App\Http\Requests\Request;
  12. use App\Http\Services\Service;
  13. use App\Models\Member\User;
  14. use Illuminate\Http\JsonResponse;
  15. use Illuminate\Http\Response;
  16. use Illuminate\Support\Facades\Auth;
  17. class AuthService extends Service
  18. {
  19. /**
  20. * @throws ApiException
  21. */
  22. public static function store($user, $guardName = 'web')
  23. {
  24. if (!$user) return self::error('用户不存在!', 404);
  25. // 清理token历史
  26. $user->tokens()->where('name', $guardName)->delete();
  27. $user->status === Status::DISABLE && self::error('账号已停用!', 403);
  28. $token = $user->createToken($guardName, ['mobile' => $user->mobile]);
  29. $result = $token->plainTextToken;
  30. !$result && self::error('登录失败!', 401);
  31. // $user->last_activity_at = time();
  32. // $user->ip_address = request()->getClientIp();
  33. // $user->save();
  34. return $result;
  35. }
  36. public static function destroy(Request $request): void
  37. {
  38. Auth::guard('web')->logout();
  39. $request->session()->invalidate();
  40. $request->session()->regenerateToken();
  41. }
  42. }