| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- namespace App\Http\Controllers\Admin\Auth;
- use App\Http\Controllers\Controller;
- use Illuminate\Foundation\Auth\AuthenticatesUsers;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use App\Models\Admin\AdminLoginLog;
- use App\Models\Admin\Admin;
- class LoginController extends Controller
- {
- /*
- |--------------------------------------------------------------------------
- | Login Controller
- |--------------------------------------------------------------------------
- |
- | This controller handles authenticating users for the application and
- | redirecting them to your home screen. The controller uses a trait
- | to conveniently provide its functionality to your applications.
- |
- */
- use AuthenticatesUsers;
- /**
- * Where to redirect users after login.
- *
- * @var string
- */
- protected $redirectTo = '/admin/home';
- /**
- * Create a new controller instance.
- *
- * @return void
- */
- public function __construct()
- {
- $this->middleware('admin.guest')->except('logout','admin.logout');
- }
- /**
- * Get the guard to be used during authentication.
- *
- * @return \Illuminate\Contracts\Auth\StatefulGuard
- */
- protected function guard()
- {
- return Auth::guard('admin');
- }
- /**
- * Show the application's login form.
- *
- * @return \Illuminate\Http\Response
- */
- public function showLoginForm()
- {
- return view('admin.auth.login');
- }
- /**
- * Log the user out of the application.
- *
- * @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
- */
- public function logout(Request $request)
- {
- $this->guard('admin')->logout();
- $request->session()->invalidate();
- return $this->loggedOut($request) ?: redirect('/admin/login');
- }
- /**
- * Get the login username to be used by the controller.
- *
- * @return string
- */
- public function username()
- {
- return 'name';
- }
- public function login(Request $request)
- {
- // 验证IP
- $data = Admin::where('name',$request->name)->first();
- if(empty($data)){
- return $this->sendFailedLoginResponse($request);
- }else{
- if(!empty($data->white_ip)){
- $ip = getClientIP();
- $canLogin = Admin::where('name',$request->name)->where('status',1)->whereRaw("FIND_IN_SET('$ip',white_ip)")->first();
- if(empty($canLogin)){
- return $this->sendFailedLoginResponse($request);
- }
- }
-
- $password = md5($request->password);
- if (Auth::guard('admin')->attempt(['name' => $request->name, 'password' => $password, 'status' => 1])) {
- AdminLoginLog::insert(['admin_name' => $request->name,'login_time' => nowDate(),'login_ip' => getClientIP()]);
- // 用户存在,已激活且未被禁用。
- return redirect($this->redirectTo);
- } else {
- return $this->sendFailedLoginResponse($request);
- }
- }
- }
- }
|