AuthController.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace Modules\ManageApi\Controllers;
  3. use App\Models\AdminModel;
  4. use Modules\ManageApi\Services\ManageAuthService;
  5. use Validator;
  6. class AuthController extends BaseController
  7. {
  8. /**
  9. * Jwt受众.
  10. *
  11. * @var string
  12. */
  13. private $jwtAud = 'manage-users';
  14. public function login()
  15. {
  16. $inputData = $this->getJsonData();
  17. $rules = [
  18. 'account' => 'required|max:120',
  19. 'pass' => 'required|max:64',
  20. ];
  21. $validator = app('validator')->make($inputData, $rules);
  22. if ($validator->fails()) {
  23. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  24. return json_fail($validator->errors()->first());
  25. }
  26. $adminInfo = AdminModel::query()
  27. ->where(['account' => $inputData['account'], 'status' => 1])
  28. ->first();
  29. if (!$adminInfo) {
  30. return json_fail('用户不存在');
  31. }
  32. $md5password = generatePassword($inputData['pass'], $adminInfo['salt']);
  33. if ($md5password != $adminInfo['password']) {
  34. return json_fail('密码错误,请输入正确的登陆密码');
  35. }
  36. $tokenInfo = app(ManageAuthService::class)->createSingleJwt($adminInfo['id'], $adminInfo['account']);
  37. $data = [
  38. 'token' => $tokenInfo['token'],
  39. 'expired_at' => $tokenInfo['expired_at'],
  40. 'manager_id' => $adminInfo->id,
  41. ];
  42. $adminInfo->login_time = date('Y-m-d H:i:s');
  43. $adminInfo->save();
  44. return json_success($data);
  45. }
  46. }