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 相关文章推荐
sqlyog 中文乱码问题的设置方法
Oct 19 PHP
php checkbox 取值详细说明
Aug 19 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
php缓冲 output_buffering和ob_start使用介绍
Jan 30 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
PHP getName()函数讲解
Feb 03 PHP
php fread函数使用方法总结
May 28 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 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开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
使用pandas读取文件的实现
2019/07/31 Python
Python换行与不换行的输出实例
2020/02/19 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
班组长安全生产职责
2013/12/16 职场文书
加拿大留学自荐信
2014/01/28 职场文书
工程质量承诺书
2014/03/27 职场文书
团支部建设方案
2014/05/02 职场文书
南湾猴岛导游词
2015/02/09 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL