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 相关文章推荐
用libTemplate实现静态网页的生成
Oct 09 PHP
我的论坛源代码(十)
Oct 09 PHP
php 学习资料零碎东西
Dec 04 PHP
PHP中常用的转义函数
Feb 28 PHP
Linux下php5.4启动脚本
Aug 03 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
PHP中的表达式简述
May 29 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
Aug 18 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
Javascript - HTML的request类
2007/01/09 Javascript
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
超详细的JS弹出窗口代码大全
2020/04/18 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
python处理json数据中的中文
2014/03/06 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
python使用Apriori算法进行关联性解析
2017/12/21 Python
Python装饰器用法实例总结
2018/05/26 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
python requests使用socks5的例子
2019/07/25 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
几道PHP面试题
2013/04/14 面试题
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
毕业生自荐信范文
2015/03/05 职场文书
研讨会通知
2015/04/27 职场文书
浅谈Python 中的复数问题
2021/05/19 Python