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 防止单引号,双引号在接受页面转义
Jul 10 PHP
php下mysql数据库操作类(改自discuz)
Jul 03 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
Apr 26 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
PHP 二级子目录(后台目录)设置二级域名
Mar 02 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
CI框架实现创建自定义类库的方法
Dec 25 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
详解no input file specified 三种解决方法
Nov 29 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
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
js 上传图片预览问题
2010/12/06 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
在Django中创建动态视图的教程
2015/07/15 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
一份婚庆公司创业计划书
2014/01/11 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
安全施工标语
2014/06/07 职场文书
党员个人整改措施
2014/10/24 职场文书
技术支持岗位职责
2015/02/13 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
2015年学生管理工作总结
2015/05/26 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技