国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

Laravel重寫用戶登錄簡(jiǎn)單示例

2024-05-04 23:50:44
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Laravel重寫用戶登錄的方法。分享給大家供大家參考,具體如下:

class AuthController extends Controller{  //  use ThrottlesLogins, AuthenticatesAndRegistersUsers;  protected $redirectTo = 'admin/index';  protected $loginView = 'admin/login';  protected $guard = 'admin';  protected $redirectAfterLogout = 'admin/login';  protected $maxLoginAttempts = 5; //每分鐘最大嘗試登錄次數(shù)  protected $lockoutTime = 600; //登錄鎖定時(shí)間  function __construct()  {    $this->middleware('guest:admin', ['except' => 'logout']);  }  protected function validator(array $data)  {    return Validator::make($data, [      'username' => 'required|max:255',      'email' => 'required|email|max:255|unique:admin_users',      'password' => 'required|confirmed|min:6',    ]);  }  /**   * @param Request $request   */  protected function validateLogin(Request $request)  {    $this->validate($request,[      $this->loginUsername() => 'required',      'password' => 'required',      'captcha' => 'required|captcha'    ], [      'email.required' => '郵箱必須',      'password.required' => '密碼必須',      'captcha.captcha' => '驗(yàn)證碼錯(cuò)誤',      'captcha.required' => '驗(yàn)證碼必須',    ]);  }  /**   * 重寫登錄   * @param Request $request   * @return /Illuminate/Http/RedirectResponse|/Illuminate/Http/Response   */  public function login(Request $request)  {    $this->validateLogin($request);    // If the class is using the ThrottlesLogins trait, we can automatically throttle    // the login attempts for this application. We'll key this by the username and    // the IP address of the client making these requests into this application.    $throttles = $this->isUsingThrottlesLoginsTrait();    //dd($this->hasTooManyLoginAttempts($request));    if ($throttles && $lockedOut = $this->hasTooManyLoginAttempts($request)) {      $this->fireLockoutEvent($request);      //日志記錄      $this->login_logs(['email'=>$request->input('email'), 'login_ip'=>$request->ip(), 'login_result'=>0, 'comments'=>'限制登錄10分鐘']);      return $this->sendLockoutResponse($request);    }    $credentials = $this->getCredentials($request);    if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {      //日志記錄      $this->login_logs(['email'=>$request->input('email'), 'login_ip'=>$request->ip(), 'login_result'=>1, 'comments'=>'登錄成功']);      return $this->handleUserWasAuthenticated($request, $throttles);    }    // If the login attempt was unsuccessful we will increment the number of attempts    // to login and redirect the user back to the login form. Of course, when this    // user surpasses their maximum number of attempts they will get locked out.    if ($throttles && ! $lockedOut) {      //日志記錄      $this->login_logs(['email'=>$request->input('email'), 'login_ip'=>$request->ip(), 'login_result'=>0, 'comments'=>'登錄失敗']);      $this->incrementLoginAttempts($request);    }    return $this->sendFailedLoginResponse($request);  }  /**   * 登錄記錄   * @param $data   */  private function login_logs ($data)  {    LoginLog::create($data);  }}

直接重寫login方法,其實(shí)我是復(fù)制了原方法然后加入了一些自己的東西。

主要的一些修改就是:

1. 加入驗(yàn)證碼(自定義了驗(yàn)證信息及提示)。

2. 后臺(tái)登錄頻率的限制。

3. 登錄日志記錄。

希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 乐昌市| 永泰县| 乌审旗| 广元市| 冕宁县| 德庆县| 济源市| 莱州市| 克拉玛依市| 横峰县| 通江县| 邯郸县| 漳平市| 班玛县| 望都县| 晋城| 奉贤区| 诏安县| 房山区| 咸阳市| 来安县| 古交市| 虎林市| 涪陵区| 新民市| 沾益县| 大田县| 靖西县| 玉龙| 泰顺县| 东丽区| 安达市| 永春县| 五莲县| 吴堡县| 温宿县| 蒲城县| 登封市| 黄陵县| 昌吉市| 乐安县|