LoginController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace App\Http\Controllers\Admin\Auth;
  3. use App\Http\Controllers\Admin\Controller;
  4. use Illuminate\Foundation\Auth\AuthenticatesUsers;
  5. use Validator, Auth;
  6. use App\Services\Admin\AdminUser;
  7. class LoginController extends Controller
  8. {
  9. /*
  10. |--------------------------------------------------------------------------
  11. | Login Controller
  12. |--------------------------------------------------------------------------
  13. |
  14. | This controller handles authenticating users for the application and
  15. | redirecting them to your home screen. The controller uses a trait
  16. | to conveniently provide its functionality to your applications.
  17. |
  18. */
  19. use AuthenticatesUsers;
  20. /**
  21. * Where to redirect users after login.
  22. *
  23. * @var string
  24. */
  25. protected $redirectTo = '/admin';
  26. /**
  27. * Create a new controller instance.
  28. *
  29. * @return void
  30. */
  31. private $_service;
  32. public function __construct()
  33. {
  34. $this->_service = new AdminUser();
  35. $this->middleware('guest', ['except' => 'logout']);
  36. }
  37. /**
  38. * 重写登录视图页面
  39. * @author 晚黎
  40. * @date 2016-09-05T23:06:16+0800
  41. * @return [type] [description]
  42. */
  43. public function showLoginForm()
  44. {
  45. return view('admin.auth.login');
  46. }
  47. /**
  48. * 自定义认证驱动
  49. * @author 晚黎
  50. * @date 2016-09-05T23:53:07+0800
  51. * @return [type] [description]
  52. */
  53. protected function guard()
  54. {
  55. return auth()->guard('admin');
  56. }
  57. public function username()
  58. {
  59. return 'name';
  60. }
  61. public function login(\Illuminate\Http\Request $request)
  62. {
  63. $validator = Validator::make($data = $request->all(),
  64. [
  65. 'name' => 'required', 'password' => 'required',
  66. ],
  67. [
  68. 'name.required'=>'请输入用户名',
  69. 'password.required'=>'请输入密码'
  70. ]
  71. );
  72. if ($validator->fails()) {
  73. $msg = $validator->messages()->first();
  74. return $this->showWarning($msg);
  75. }
  76. $ok = $this->_service->login($request->name, $request->password);
  77. if($ok) {
  78. return redirect("/admin");
  79. }else{
  80. $msg = $this->_service->getMsg();
  81. $this->showWarning($msg);
  82. }
  83. if (!Auth::guard('admin')->attempt(['name' => $request->name, 'password' => $request->password])){
  84. return $this->showMessage('用户名或密码错误!');
  85. }
  86. return redirect('/admin');
  87. }
  88. public function logout()
  89. {
  90. Auth::guard('admin')->logout();
  91. return redirect('/admin/login');
  92. }
  93. }