亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

基于Laravel5.4實現多字段登錄功能方法示例

2024-05-04 23:59:23
字體:
來源:轉載
供稿:網友

前言

最近在一個項目中需要實現一個多字段登錄功能,簡單來說就是可以使用用戶名、郵箱或手機號任意一種方式進行登錄。所以本文就來給大家介紹了關于Laravel5.4多字段登錄的相關內容,分享出來供大家參考學習,話不多說了,來一起看看詳細的介紹吧。

以下內容基于laravel5.4

方法如下:

首先,通過artisan工具生成auth模塊

php artisan make:auth

這時候App/Http/Controllers目錄下會新增一個Auth目錄,該目錄下為注冊登錄相關的控制器,resources/views目錄下也會生成一些與注冊登錄相關的視圖

laravel的官方文檔中說手動認證用戶需要使用Illuminate/Support/Facades/Auth類的attempt方法,如下:

<?phpnamespace App/Http/Controllers;use Illuminate/Support/Facades/Auth;class LoginController extends Controller{ /**  * Handle an authentication attempt.  *  * @return Response  */ public function authenticate() {  if (Auth::attempt(['email' => $email, 'password' => $password])) {   // Authentication passed...   return redirect()->intended('dashboard');  } }}

這個方法會根據你傳入的參數判斷數據庫中是否存在與之相匹配的用戶,如果存在并且密碼正確返回true,反之返回false

遂在LoginController中添加該方法,但是好像并沒有效果

于是開始觀察LoginController的實現機制,發現它實現了一個AuthenticatesUsers的trait,追蹤到這個trait的定義文件,發現這個文件就是我們想要的東西

里面有一個login方法,就是負責處理登錄的邏輯

/**  * Handle a login request to the application.  *  * @param /Illuminate/Http/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.  // 防止暴力破解,多次登錄失敗會根據IP鎖定  if ($this->hasTooManyLoginAttempts($request)) {   $this->fireLockoutEvent($request);   return $this->sendLockoutResponse($request);  }    // 這個就是主要的負責判斷數據庫中是否存在相應的賬號和密碼的地方,我們需要重寫的就是attemptLogin方法  if ($this->attemptLogin($request)) {   return $this->sendLoginResponse($request);  }  // 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.  // 登錄失敗,失敗次數++,防止暴力破解  $this->incrementLoginAttempts($request);  // 返回失敗響應  return $this->sendFailedLoginResponse($request); }

分析了一波這個文件,發現主要進行登錄判斷的就是attemptLogin方法,我們只要重寫這個方法即可,先看看原來的是怎么寫的,根據原來的進行重寫:

/**  * Attempt to log the user into the application.  *  * @param /Illuminate/Http/Request $request  * @return bool  */ protected function attemptLogin(Request $request) {  return $this->guard()->attempt(   $this->credentials($request), $request->has('remember')  ); }

在LoginController重寫后:

public function attemptLogin(Request $request) {  $username = $request->input('username');  $password = $request->input('password');  // 驗證用戶名登錄方式  $usernameLogin = $this->guard()->attempt(   ['username' => $username, 'password' => $password], $request->has('remember')  );  if ($usernameLogin) {   return true;  }  // 驗證手機號登錄方式  $mobileLogin = $this->guard()->attempt(   ['mobile' => $username, 'password' => $password], $request->has('remember')  );  if ($mobileLogin) {   return true;  }  // 驗證郵箱登錄方式  $emailLogin = $this->guard()->attempt(   ['email' => $username, 'password' => $password], $request->has('remember')  );  if ($emailLogin) {   return true;  }  return false; }

只需要用attempt方法進行多次判斷即可,只要成功就返回true,不成功繼續用其他字段進行判斷,都不成功則返回flase

測試,可以實現多字段登錄效果

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩成人免费视频| 777国产偷窥盗摄精品视频| 懂色av影视一区二区三区| 亚洲一区二区三区四区视频| 国产视频久久久久久久| 97人洗澡人人免费公开视频碰碰碰| 亚洲天天在线日亚洲洲精| 国产成人久久精品| 97在线视频免费播放| 自拍偷拍亚洲精品| 亚洲一区二区三区四区视频| 欧美日本精品在线| 国产亚洲美女久久| 久久av在线看| 精品国产乱码久久久久久天美| 久久精品2019中文字幕| 一道本无吗dⅴd在线播放一区| 亚洲免费人成在线视频观看| 亚洲国产成人精品一区二区| 97欧美精品一区二区三区| 亚洲va国产va天堂va久久| 超碰日本道色综合久久综合| 欧美大尺度电影在线观看| 欧美精品video| 亚洲欧美精品伊人久久| 精品国产自在精品国产浪潮| 久久久精品国产亚洲| 日本亚洲欧洲色α| 91黑丝高跟在线| 精品久久久久久久久久国产| 这里只有精品在线观看| 国产精品高潮呻吟久久av野狼| 日韩精品在线第一页| 亚洲国产美女精品久久久久∴| 日韩女在线观看| 欧美激情一区二区三区在线视频观看| 亚洲精品成人av| 亚洲欧美中文日韩在线v日本| 欧美精品xxx| 国产日本欧美在线观看| 欧美日韩国产999| 97在线观看免费| 激情亚洲一区二区三区四区| 在线播放精品一区二区三区| 欧美午夜电影在线| 国产视频亚洲精品| 亚洲自拍偷拍视频| 色无极亚洲影院| 国产精品午夜国产小视频| 国内精品久久久久久久久| 国产午夜精品一区理论片飘花| 国产精品视频一区二区三区四| 国内精品久久久久影院优| 中文字幕v亚洲ⅴv天堂| 欧美日韩国内自拍| www.久久草.com| www.日韩不卡电影av| 久久香蕉精品香蕉| 国产日韩欧美成人| 性夜试看影院91社区| 亚洲第一视频在线观看| 色综合久久中文字幕综合网小说| 精品毛片三在线观看| 亚洲欧美中文另类| 日韩欧美成人区| 亚洲国产精品网站| 日韩av中文在线| 欧美日韩精品在线视频| 欧美老妇交乱视频| 在线播放国产一区二区三区| 欧美又大又粗又长| 日韩午夜在线视频| 欧美成人精品一区二区| 精品国产一区二区三区在线观看| 日韩欧美在线中文字幕| 国产综合久久久久| 伊人伊成久久人综合网小说| 高清一区二区三区日本久| 一个人看的www久久| 亚洲图片制服诱惑| 成人动漫网站在线观看| 欧美另类99xxxxx| 18性欧美xxxⅹ性满足| 日韩在线观看免费网站| zzjj国产精品一区二区| 136fldh精品导航福利| 疯狂蹂躏欧美一区二区精品| 91免费综合在线| 久久97久久97精品免视看| 日韩电影在线观看免费| 日韩欧美aⅴ综合网站发布| 在线电影av不卡网址| 久久久久久久色| 午夜精品久久久久久99热软件| 亚洲free性xxxx护士hd| 日韩高清av在线| 亚洲黄色有码视频| 国产精品国产福利国产秒拍| 精品美女永久免费视频| 日韩一区二区三区xxxx| 麻豆国产精品va在线观看不卡| 中文字幕在线精品| 中文字幕在线日韩| 欧美视频一二三| 国产裸体写真av一区二区| 久久中文字幕国产| 97久久精品人搡人人玩| 亚洲图片在线综合| 精品一区二区电影| 国产成人精品久久二区二区91| 高清在线视频日韩欧美| 国产成人久久久精品一区| 91精品国产免费久久久久久| 亚洲自拍高清视频网站| 欧美成人黄色小视频| zzijzzij亚洲日本成熟少妇| 国产丝袜视频一区| 国产91精品最新在线播放| 国产精品爽黄69| 97视频在线观看免费高清完整版在线观看| 精品亚洲精品福利线在观看| 成人妇女淫片aaaa视频| 97在线看免费观看视频在线观看| 美女少妇精品视频| 国产美女高潮久久白浆| 性色av一区二区三区在线观看| 久久久久久久久久久亚洲| 亚洲欧美国产一区二区三区| 午夜欧美大片免费观看| 亚洲精品美女在线| 久久久精品国产一区二区| 亚洲免费人成在线视频观看| 亚洲一区二区三区在线免费观看| 69av在线视频| 国产成人一区三区| 在线观看国产精品淫| 欧美视频不卡中文| 亚洲国产精品久久91精品| 久久久午夜视频| 黄色精品在线看| 欧美大学生性色视频| 日韩中文字幕亚洲| 日韩综合视频在线观看| 久久精品国产久精国产一老狼| 国产成人精品视频| 国产玖玖精品视频| 91欧美精品午夜性色福利在线| 亚洲欧美激情另类校园| 青青草原成人在线视频| 欧美香蕉大胸在线视频观看| 国产精品美女呻吟| 久久久精品影院| 91精品国产91| 97视频免费在线观看| 啪一啪鲁一鲁2019在线视频| 精品亚洲一区二区三区在线播放| 国产在线观看一区二区三区| 国产精品久久久久久五月尺| 色777狠狠综合秋免鲁丝| 91精品国产91久久久| 欧美日韩在线视频一区| 日韩久久免费视频| 国产精品视频自在线| 一本大道香蕉久在线播放29|