AuthController.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace App\Http\Controllers\agent;
  3. use App\Http\Controllers\AgentApiController;
  4. use App\Services\Agent\AgentAuthService;
  5. use Illuminate\Http\Request;
  6. class AuthController extends AgentApiController
  7. {
  8. public function login(Request $request, AgentAuthService $service)
  9. {
  10. return $this->execute(function () use ($request, $service) {
  11. $data = $request->validate([
  12. 'username' => ['required', 'string', 'max:64'],
  13. 'password' => ['required', 'string', 'max:100'],
  14. ]);
  15. $result = $service->login(trim($data['username']), $data['password'], $request);
  16. $agent = \App\Models\Agent\Agent::query()->where('username', trim($data['username']))->firstOrFail();
  17. $result['agent'] = [
  18. 'id' => (int) $agent->id,
  19. 'username' => $agent->username,
  20. 'real_name' => $agent->real_name,
  21. 'language' => $agent->language ?? 'zh',
  22. 'invitation_code' => $agent->invitation_code,
  23. 'level' => (int) $agent->level,
  24. 'level_text' => $agent->level_text,
  25. 'can_create_sub_agent' => $agent->can_create_sub_agent,
  26. ];
  27. return $result;
  28. });
  29. }
  30. public function logout(AgentAuthService $service)
  31. {
  32. return $this->execute(function () use ($service) {
  33. $service->logout(request()->attributes->get('agent_token'));
  34. return [];
  35. });
  36. }
  37. }