UserController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Http\Controllers\Api\Base;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Middleware\SingleLoginLimit;
  5. use App\Repositories\Models\Base\User;
  6. use App\Services\Base\UserService;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Cache;
  9. /**
  10. * 用户管理
  11. */
  12. class UserController extends Controller
  13. {
  14. /**
  15. * @var UserService
  16. */
  17. private $service;
  18. /**
  19. * UserController constructor.
  20. *
  21. * @param UserService $userService
  22. */
  23. public function __construct(UserService $userService)
  24. {
  25. parent::__construct();
  26. $this->service = $userService;
  27. }
  28. /**
  29. * 读信
  30. * @param Request $request
  31. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  32. */
  33. public function isReadXin(Request $request)
  34. {
  35. $this->service->handleReadXin(login_user_id());
  36. return $this->response->ok('操作成功');
  37. }
  38. public function testToken(Request $request)
  39. {
  40. $user = User::query()->where('id', $request->input('id'))->first();
  41. $token = auth('api')->login($user);
  42. //单机登录限制
  43. $user_id = $user['id'];
  44. SingleLoginLimit::setToken('api', $user_id, $token);
  45. $this->singleLoginSetToken(login_user_id(), $token, 'api');
  46. $token = 'Bearer ' . $token;
  47. $expires_in = auth()->factory()->getTTL() * 60;
  48. return $this->response->success(compact('token', 'expires_in'));
  49. }
  50. private function singleLoginSetToken($user_id, $token, $guard)
  51. {
  52. return Cache::tags('login')->put("SingleLoginLimit:{$guard}:{$user_id}", $token);
  53. }
  54. }