AuthController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /*
  3. * This file is part of the Jiannei/lumen-api-starter.
  4. *
  5. * (c) Jiannei <longjian.huang@foxmail.com>
  6. *
  7. * This source file is subject to the MIT license that is bundled
  8. * with this source code in the file LICENSE.
  9. */
  10. namespace App\Http\Controllers\Admin\Base;
  11. use App\Http\Controllers\Controller;
  12. use App\Repositories\Enums\ResponseCodeEnum;
  13. use App\Repositories\Models\Base\Admin;
  14. use App\Repositories\Transformers\Base\AdminTransformer;
  15. use Illuminate\Http\Request;
  16. use Illuminate\Support\Facades\Hash;
  17. use Jiannei\Response\Laravel\Support\Facades\Response;
  18. class AuthController extends Controller
  19. {
  20. /**
  21. * Create a new controller instance.
  22. */
  23. public function __construct()
  24. {
  25. // $this->middleware('enum:false');
  26. $this->middleware('throttle:10,1', ['only' => ['login']]);
  27. }
  28. /**
  29. * 登录
  30. * Author: Mead
  31. */
  32. public function login(Request $request)
  33. {
  34. $this->validate($request, [
  35. 'username' => 'required',
  36. 'password' => 'required|min:6'
  37. ]);
  38. $credentials = request(['username', 'password']);
  39. if (!$token = auth()->guard('admins')->attempt($credentials)) {
  40. return Response::fail(T('The account or password is incorrect.'), ResponseCodeEnum::SERVICE_LOGIN_ERROR);
  41. }
  42. $user = auth('admins')->user();
  43. return Response::success(compact('token', 'user'));
  44. }
  45. /**
  46. * 退出
  47. * @return mixed
  48. * Author: Mead
  49. */
  50. public function logout()
  51. {
  52. auth('admins')->logout();
  53. return Response::noContent();
  54. }
  55. /**
  56. * 用户
  57. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  58. * Author: Mead
  59. */
  60. public function me()
  61. {
  62. $me = (new AdminTransformer())->transform(Admin::query()->find(login_admin_id()));
  63. return Response::success($me);
  64. }
  65. public function update(Request $request)
  66. {
  67. $this->validate($request, [
  68. 'username' => 'required|min:6',
  69. 'name' => 'required',
  70. 'password' => 'sometimes|confirmed',
  71. 'headimg' => 'sometimes',
  72. 'department_id' => 'required',
  73. 'status' => 'required',
  74. ]);
  75. try {
  76. $data = $request->only(['username', 'name', 'password', 'headimg', 'department_id', 'status']);
  77. if (isset($data['password']) && $data['password']) {
  78. $data['password'] = Hash::make($data['password']);
  79. } else {
  80. unset($data['password']);
  81. }
  82. $re = Admin::query()->where('id', login_admin_id())->update($data);
  83. if ($re) {
  84. return Response::success(null);
  85. }
  86. return $this->errorFail();
  87. } catch (\Exception $e) {
  88. $this->errorStore($e);
  89. }
  90. }
  91. }