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 imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
sphinx增量索引的一个问题
Jun 14 PHP
php旋转图片90度的方法
Nov 07 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
PHP实现ftp上传文件示例
Aug 21 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
php获取一定范围内取N个不重复的随机数
May 28 PHP
php结合redis高并发下发帖、发微博的实现方法
Dec 15 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 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
第一个无线电台是由谁发明的
2021/03/01 无线电
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
php实现通过ftp上传文件
2015/06/19 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
jQuery自定义组件(导入组件)
2016/11/08 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
简单实现jquery隔行变色
2017/11/09 jQuery
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
python编写猜数字小游戏
2019/10/06 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
几道PHP的面试题
2012/05/19 面试题
如何设定的weblogic的热启动模式(开发模式)与产品发布模式
2012/09/08 面试题
信息部岗位职责
2013/11/12 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
建议书范文
2015/02/05 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
Nginx 匹配方式
2022/05/15 Servers