Laravel 默认邮箱登录改成用户名登录的实现方法


Posted in PHP onAugust 12, 2019

Laravel中默认的登录是通过邮箱和密码进行登录的。那么,怎么样才能用最少的改动将它改成用密码登录呢?

默认的,Laravel使用的是 Illuminate\Foundation\Auth\AuthenticatesUsers 这个trait完成登录功能的。通过观察 AuthenticatesUsers 的代码,发现下面一段很有意思的代码:

protected function validateLogin(Request $request)
  {
    $this->validate($request, [
      $this->username() => 'required|string',
      'password' => 'required|string',
    ]);
  }
  public function username()
  {
    return 'email';
  }

可以看到,是 因 为trait里定义了用户名就是email,所以才会使得验证的时候通过用户邮箱验证。 所以我们只需要定义一个trait,覆盖 AuthenticatesUsers 中的 username() 方法即可实现后端代码通过用户名验证登录。

新增的trait代码

namespace App\Utils;

use Illuminate\Foundation\Auth\AuthenticatesUsers as LaravelAuthenticatesUsers;
trait AuthenticatesUsers {
 use LaravelAuthenticatesUsers;
  public function username()
  {
    return 'name';
  }
}

其实还有另一个简单的修改方式,直接在LoginController中新增 username() 方法。由于当前定义方法会覆盖trait的方法,因此也能达到修改的目的。但是会破坏登录代码的整体一致性,所以最好还是通过新增trait的方式实现。

同时要记得修改前端blade文件中对输入参数的验证,然后就可以使用用户名登录了

Laravel 默认邮箱登录改成用户名登录的实现方法

总结

以上所述是小编给大家介绍的Laravel 默认邮箱登录改成用户名登录的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
PHP数据库操作面向对象的优点
Oct 09 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
Sep 09 PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
php 使用file_get_contents读取大文件的方法
Nov 13 PHP
PHP下载远程文件到本地存储的方法
Mar 24 PHP
php+ajax实现无刷新的新闻留言系统
Dec 21 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
PHP实现权限管理功能示例
Sep 22 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 PHP
php链式操作的实现方式分析
Aug 12 #PHP
基于PHP实现微信小程序客服消息功能
Aug 12 #PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 #PHP
PHP基于swoole多进程操作示例
Aug 12 #PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 #PHP
php使用pecl方式安装扩展操作示例
Aug 12 #PHP
PHP实现与java 通信的插件使用教程
Aug 11 #PHP
You might like
php比较两个字符串长度的方法
2015/07/13 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
Python多进程机制实例详解
2015/07/02 Python
Django admin美化插件suit使用示例
2017/12/12 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
pandas apply多线程实现代码
2020/08/17 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
教师队伍管理制度
2014/01/14 职场文书
自荐信的格式
2014/03/10 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
消防隐患整改通知书
2015/04/22 职场文书
上甘岭观后感
2015/06/10 职场文书
公司车辆管理制度
2015/08/04 职场文书
python图像处理 PIL Image操作实例
2022/04/09 Python