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 选项及相关信息函数库
Dec 04 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
Oct 25 PHP
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
php桥接模式应用案例分析
Oct 23 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 REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
php创建多级目录代码
2008/06/05 PHP
php5.3 废弃函数小结
2010/05/16 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
浅谈php://filter的妙用
2019/03/05 PHP
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
python字符串连接方式汇总
2014/08/21 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
Django-Rest-Framework 权限管理源码浅析(小结)
2018/11/12 Python
python中字典增加和删除使用方法
2020/09/30 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
微型企业创业投资计划书
2014/01/10 职场文书
人事文员岗位职责
2014/02/16 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
建筑工地标语
2014/06/18 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
婚姻出轨保证书
2015/05/08 职场文书
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技