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 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
PHP curl 获取响应的状态码的方法
Jan 13 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
Jan 19 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
利用ajax和PHP实现简单的流程管理
Mar 23 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
php实现微信支付之现金红包
May 30 PHP
php中错误处理操作实例分析
Aug 23 PHP
php和nginx交互实例讲解
Sep 24 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函数解决SQL injection
2006/12/09 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
ajax java 实现自动完成功能
2012/12/19 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
js实现全选反选不选功能代码详解
2019/04/24 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
Python中使用Inotify监控文件实例
2015/02/14 Python
详解Python中的join()函数的用法
2015/04/07 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
Django与JS交互的示例代码
2017/08/23 Python
对pandas中to_dict的用法详解
2018/06/05 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
Ibatis中如何提高SQL Map的性能
2013/05/11 面试题
正规的求职信范文分享
2013/12/11 职场文书
查环查孕证明
2014/01/10 职场文书
海洋科学专业求职信
2014/08/10 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
预备党员介绍人意见
2015/06/01 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python