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中使用Akismet防止垃圾评论的代码
Jun 10 PHP
在yii中新增一个用户验证的方法详解
Jun 20 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
PHP也能干大事 随机函数
Apr 14 PHP
摘自织梦CMS中的图片处理类
Aug 08 PHP
PHPMailer发送邮件
Dec 28 PHP
老生常谈PHP面向对象之标识映射
Jun 21 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
php 实现银联商务H5支付的示例代码
Oct 12 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
django rest framework使用django-filter用法
2020/07/15 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
会计专业的自荐信
2013/12/12 职场文书
仓管岗位职责范本
2014/02/08 职场文书
办公设备采购方案
2014/03/16 职场文书
考核评语大全
2014/04/29 职场文书
争先创优活动总结
2014/08/27 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
廉洁自律证明
2015/06/24 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android