利用Laravel5.4怎么实现一个多字段登录功能

  介绍

今天就跟大家聊聊有关利用Laravel5.4怎么实现一个多字段登录功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>方法如下:

首先,通过工匠工具生成auth模块

<代码> php工匠:身份验证代码

这时候App \ Http \控制器目录下会新增一个身份验证目录,该目录下为注册登录相关的控制器,资源\观点目录下也会生成一些与注册登录相关的视图

laravel的官方文档中说手动认证用户需要使用照亮\外墙\ \支持身份验证类的尝试方法,如下:

& lt; php ?      namespace 应用\ Http \控制器;      use 阐明\ \外墙\身份验证的支持;      class  LoginController  extends 控制器   {/* *   *,才能Handle  an  authentication 尝试。   ,*   *,才能@return 响应   ,*/,public  function 验证()   ,{   if 才能;(身份验证:尝试((& # 39;电子邮件,,=祝辞,电子邮件,美元,& # 39;密码# 39;,=祝辞,$密码])),{   ,,//,Authentication 通过…   ,,return 重定向()→计划(& # 39;仪表板# 39;);   ,,}   ,}   }

这个方法会根据你传入的参数判断数据库中是否存在与之相匹配的用户,如果存在并且密码正确返回真,反之返回假

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

于是开始观察LoginController的实现机制,发现它实现了一个AuthenticatesUsers的特征,追踪到这个特质的定义文件,发现这个文件就是我们想要的东西

里面有一个登录方法,就是负责处理登录的逻辑

/* *      ,public  function 登录(Request 美元请求)   ,{//才能,表单验证   这个美元才能→validateLogin($请求);//才能,If 从而class  is  using 从而ThrottlesLogins 特征,还要automatically 节流我方表示歉意//才能,从而login  attempts  for 却;能够应用程序只我们# 39;ll  key 却;能够by 从而username //才能,从而IP  address  of 从而client  making  these  requests  into 却;能够应用程序。//才能,防止暴力破解,多次登录失败会根据IP锁定   if 才能;($ this→hasTooManyLoginAttempts(请求)美元),{   ,,这→美元fireLockoutEvent($请求);      ,,return 美元这→sendLockoutResponse($请求);   ,,}   ,,//才能,这个就是主要的负责判断数据库中是否存在相应的账号和密码的地方,我们需要重写的就是attemptLogin方法   if 才能;($ this→attemptLogin(请求)美元),{   ,,return 美元这→sendLoginResponse($请求);   ,,}//才能,If 从而login  attempt  was  unsuccessful  will  increment 我方表示歉意,number  of 尝试//,才能用login 以及redirect 从而user  back 用,login 形式只Of 当然,when 这//才能,user  surpasses  their  maximum  number  of  attempts 活动对象;will  get  locked 。//,才能登录失败,失败次数+ +,防止暴力破解   这个美元才能→incrementLoginAttempts($请求);//,才能返回失败响应   return 才能;这→美元sendFailedLoginResponse($请求);   以前,}

分析了一波这个文件,发现主要进行登录判断的就是attemptLogin方法,我们只要重写这个方法即可,先看看原来的是怎么写的,根据原来的进行重写:

, protected  function  attemptLogin (Request  $请求)   ,{   return 才能;这→美元警卫队()→尝试(   ,,这→美元凭证(请求)美元,,请求→美元(& # 39;记得# 39;)   ,,);   以前,}

在LoginController重写后:

public  function  attemptLogin (Request  $请求)   ,{   时间=美元才能username 美元请求→输入(& # 39;用户名# 39;);   时间=美元才能password 美元请求→输入(& # 39;密码# 39;);//,才能验证用户名登录方式=美元才能usernameLogin  $ this→警卫队()→尝试(   ,,(& # 39;用户名# 39;,=祝辞,用户名、美元,& # 39;密码# 39;,=祝辞,密码]美元,,请求→美元(& # 39;记得# 39;)   ,,);   if 才能;(usernameLogin美元),{   ,,return 真实;   ,,}//,才能验证手机号登录方式=美元才能mobileLogin  $ this→警卫队()→尝试(   ,,(& # 39;移动# 39;,=祝辞,用户名、美元,& # 39;密码# 39;,=祝辞,密码]美元,,请求→美元(& # 39;记得# 39;)   ,,);   if 才能;(mobileLogin美元),{   ,,return 真实;   ,,}//,才能验证邮箱登录方式=美元才能emailLogin  $ this→警卫队()→尝试(   ,,(& # 39;电子邮件,,=祝辞,用户名、美元,& # 39;密码# 39;,=祝辞,密码]美元,,请求→美元(& # 39;记得# 39;)   ,,);   if 才能;(emailLogin美元),{   ,,return 真实;   ,,}      return 才能;假;   ,}

利用Laravel5.4怎么实现一个多字段登录功能