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发电子邮件
Oct 09 PHP
?算你??的 PHP 程式大小
Dec 06 PHP
php 页面执行时间计算代码
Dec 04 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
如何在PHP中使用数组
Jun 09 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作的文本留言本的例子(三)
2006/10/09 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
浅谈php提交form表单
2015/07/01 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
CCPry JS类库 代码
2009/10/30 Javascript
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
2018/09/01 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
自定义django admin model表单提交的例子
2019/08/23 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
网吧最新创业计划书范文
2014/03/27 职场文书
寒山寺导游词
2015/02/03 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
圆明园观后感
2015/06/03 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
通知怎么写?
2019/04/17 职场文书