AuthController.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Admin;
  4. use App\Models\AdminRole;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Auth;
  7. use Illuminate\Support\Facades\Hash;
  8. use Illuminate\Support\Facades\Validator;
  9. class AuthController extends Controller
  10. {
  11. public function __construct()
  12. {
  13. $this->middleware('check.token')->except('login');
  14. }
  15. public function login(Request $request)
  16. {
  17. $name=$request->input('name');
  18. $admin = Admin::where('name',$name)->first();
  19. if(empty($admin)){
  20. return $this->error('450001','账号不存在');
  21. }
  22. if($admin->status == 0){
  23. return $this->error('450001','账号已禁用');
  24. }
  25. if(Hash::check($request->input('password'),$admin->password)){
  26. if ($token = Auth::guard('api')->fromUser($admin)) {
  27. return $this->success($token);
  28. }
  29. }else{
  30. return $this->error('450001','密码错误');
  31. }
  32. }
  33. public function editPassword(Request $request){
  34. $rules=[
  35. 'password' => 'required|min:6|max:18',
  36. ];
  37. $messages = [
  38. 'password.required' => '密码为必填项.',
  39. 'password.min' => '密码不能少于6个字符.',
  40. 'password.max' => '密码不能超过18个字符.',
  41. ];
  42. $validator = Validator::make($request->all(), $rules, $messages);
  43. if($validator->fails()){
  44. return $this->error('450001',$validator->errors()->first());
  45. }
  46. $id= Auth::user()->id;
  47. $admin = Admin::where('id',$id)->first();
  48. if(Hash::check($request->input('oldPwd'),$admin->password)){
  49. $admin->password = Hash::make($request->input('password'));
  50. $admin->save();
  51. return $this->success([]);
  52. }else{
  53. return $this->error('450001','原密码错误');
  54. }
  55. }
  56. public function me()
  57. {
  58. $admin = Auth::user();
  59. $data = Admin::query()->with('role')->where('id',$admin->id)->first();
  60. return $this->success($data);
  61. }
  62. public function logout()
  63. {
  64. auth('api')->logout();
  65. return $this->success([]);;
  66. }
  67. }