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学习之PHP运算符
Oct 09 PHP
PHP4实际应用经验篇(7)
Oct 09 PHP
实用函数5
Nov 08 PHP
PHP入门学习笔记之一
Oct 12 PHP
php object转数组示例
Jan 15 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
PHP框架性能测试报告
May 08 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
详解php中的implements 使用
Jun 13 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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/06/26 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
Javascript window对象详解
2014/11/12 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
vue.js click点击事件获取当前元素对象的操作
2020/08/07 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
Python优先队列实现方法示例
2017/09/21 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
python游戏地图最短路径求解
2019/01/16 Python
python中如何写类
2020/06/29 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
游戏商店:Eneba
2020/04/25 全球购物
土木建筑学生自我评价
2014/01/14 职场文书
高一英语教学反思
2014/01/22 职场文书
厂长岗位职责
2014/02/19 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
环保宣传标语
2014/06/12 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle