UserController.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Module\OAuth\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Module\OAuth\Services\OAuth;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Http\JsonResponse;
  7. class UserController extends Controller
  8. {
  9. /**
  10. * 获取当前用户信息
  11. */
  12. public function me(Request $request): JsonResponse
  13. {
  14. // 从请求头获取 Bearer Token
  15. $token = $request->bearerToken();
  16. if (!$token) {
  17. return response()->json([
  18. 'error' => 'invalid_request',
  19. 'error_description' => '缺少访问令牌'
  20. ], 401);
  21. }
  22. // 验证访问令牌
  23. $accessToken = OAuth::validateAccessToken($token);
  24. if (!$accessToken) {
  25. return response()->json([
  26. 'error' => 'invalid_token',
  27. 'error_description' => '无效的访问令牌'
  28. ], 401);
  29. }
  30. // 获取用户信息
  31. $user = \App\Module\User\Models\User::find($accessToken->user_id);
  32. if (!$user) {
  33. return response()->json([
  34. 'error' => 'invalid_token',
  35. 'error_description' => '用户不存在'
  36. ], 401);
  37. }
  38. // 返回用户信息
  39. return response()->json([
  40. 'id' => $user->user_id,
  41. 'username' => $user->mobile,
  42. 'name' => $user->nickname,
  43. 'email' => $user->mobile.'@188.com',
  44. 'scope' => $accessToken->scope
  45. ]);
  46. }
  47. }