Laravel 默认邮箱登录改成用户名登录的实现方法

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 默认邮箱登录改成用户名登录的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • laravel5.2实现区分前后台用户登录的方法

    1.前台登录 直接使用laravel自带的auth php artisan make:auth 然后可以查看路由文件: Route::group(['middleware' => 'web'], function () { Route::auth(); Route::get('/home', 'HomeController@index'); }); 执行php artisan migrate 会发现生成了两张表. 2.后台登录 编辑配置文件 config\auth.php 添加guards中的a

  • 利用Laravel事件系统如何实现登录日志的记录详解

    本文介绍的是利用Laravel事件系统实现登录日志记录的相关内容,分享出来给大家参考,下面来看看详细的介绍: 明确需求 记录一个登录日志,通常需要下列信息: 客户端Agent信息 客户端IP地址 访问IP地点 登录时间 登录用户信息 确立工具 明确完需求后,根据每个需求查找自己所需的工具吧. 需求1 jenssegers/agent就可以满足我们要求 需求2 Laravel下直接Request::getClientIp() 需求3 zhuzhichao/ip-location-zh这个包可以满足

  • 在Laravel框架里实现发送邮件实例(邮箱验证)

    在经过一段时间的使用后,发现在项目中很多地方需要用到用户验证,以短信验证和邮箱验证为主流趋势,此篇文章小编给大家总结了如何在Laravel框架中实现发送邮件功能,以后会陆续更上如何实现短信验证..... 在.env文件下 1.配置Laravel文件 MAIL_DRIVER=smtp //建议使用smtp方式 MAIL_HOST=smtp.163.com //建议使用163邮箱 QQ邮箱会有报错 MAIL_PORT=25//smtp 默认为25 MAIL_USERNAME=null //自己的16

  • Laravel实现用户注册和登录

    Laravel身为最优雅的PHP框架,很多学习PHP的小伙伴造就对Laravel垂涎欲滴.今天就来实现你的愿望,让我们一起从零开始,利用Laravel实现Web应用最常见的注册和登录功能!所有的课程源码已放在Github上:laravel-start. Race Start ! 首先我们来明确一下我们这个课程需要的东西: Laravel 4.2 Bootstrap 3.3 Laravel就是我们关心的核心部分,Bootstrap用来快速设置一些前端的CSS样式. 1.安装Laravel 简单说明

  • Laravel 5.4重新登录实现跳转到登录前页面的原理和方法

    前言 本文主要给大家介绍的是关于Laravel5.4重新登录跳转到登录前页面的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 一.应用场景: 用户登陆后存在过期时间,超时用户需重新登录.例:当用户在/user/2 页面,登陆过期后跳转到登陆页面,登陆后用户还应在/user/2而不是home/index. 二.实现原理 在判断用户过期后,存储用户当前的url地址到session中,下次登陆后跳转到此url地址. 三.laravel中的具体实现 路由中间件(判断登陆状态) 这

  • laravel5.4利用163邮箱发送邮件的步骤详解

    前言 其实发送邮箱其实不难,不如说挺简单的,本文将详细介绍关于laravel5.4用163邮箱发送邮件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.首先还是现在163注册一个账号并且设置如下图 授权码很重要的,请好好记住,待会在laravel的.env中要配置到的-- 二.如果以上你都做完了,那接下来就是配置.env了 MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=465 MAIL_USERNAME=你的账

  • php的laravel框架快速集成微信登录的方法

    本文面向的是php语言laravel框架的用户,介绍的是基于该框架实现的一个简易集成微信登录的方法.使用方法如下: 1. 安装php_weixin_provider 在项目下运行composer require thirdproviders/weixin,即可完成安装.安装成功后,在项目的vendor目录下应该能看到php_weixin_provider的库文件: 2. 配置微信登录的参数 一共有7个参数可以配置,分别是: client_id:对应公众号创建的应用appid client_sec

  • Laravel 默认邮箱登录改成用户名登录的实现方法

    Laravel中默认的登录是通过邮箱和密码进行登录的.那么,怎么样才能用最少的改动将它改成用密码登录呢? 默认的,Laravel使用的是 Illuminate\Foundation\Auth\AuthenticatesUsers 这个trait完成登录功能的.通过观察 AuthenticatesUsers 的代码,发现下面一段很有意思的代码: protected function validateLogin(Request $request) { $this->validate($request

  • idea将maven项目改成Spring boot项目的方法步骤

    1.添加parent父级依赖 在pom.xml文件中,要首先添加parent父级依赖 <!-- 这个parent是springboot的父级依赖, 它提供相关的starter的maven管理以及版本号管理,还有相关maven插件的公共配置 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artif

  • 使用jquery的cookie实现登录页记住用户名和密码的方法

    对于初学者来说,登录页记住用户名和密码的功能是经常会遇到的(通常会用javaee的api去实现),今天为大家介绍在前端页面直接用jquery实现该功能(比传统的方法简单多了),长话短说直接进入正题: 在项目中加入jquery.js和jquery.cookie.js两个依赖文件,并加入对应的页面中如: <script type="text/javascript" src="${BasePath}/static/assets/js/jquery.cookie.js"

  • iOS9苹果将原http协议改成了https协议的方法

    解决方法: 在info.plist 加入key <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 下面给大家介绍ios中http 和https 协议的访问 最近做个项目,开始采用的是HTTP协议实现客户端和服务器端的交互,后来需要改成HTTPS协议.在修改的过程中发现了一些问题,解决方案如下:

  • 将html页改成jsp的两种方式

    一般情况,将html页改成jsp有两种方法,第一种是直接修改html文件,另一种是新建jsp文件.下面具体说一下这两种方式. 假设我们要将testPage.html文件修改为testPage.jsp文件.原testPage.html文件内容为: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd&qu

  • react quill中图片上传由默认转成base64改成上传到服务器的方法

    使用react-quill富文本编辑器,里面处理图片是默认转成base64,提交到后台的时候文件太大,因此这里改写处理image的逻辑,改成上传到服务器. 具体代码如下: 配置1 import Quill from 'quill' import ReactQuill from 'react-quill' import 'react-quill/dist/quill.core.css' import 'react-quill/dist/quill.snow.css' import QuillEmo

  • Laravel框架基于中间件实现禁止未登录用户访问页面功能示例

    本文实例讲述了Laravel框架基于中间件实现禁止未登录用户访问页面功能.分享给大家供大家参考,具体如下: 1.生成中间件 [root@localhost MRedis]# php artisan make:middleware CheckLogin Middleware created successfully. 2.实现中间件,在app\http\middleware\CheckLogin.php public function handle($request, Closure $next)

  • 将php默认的FastCGI模式改成ISAPI模式

    一,下载PHP的ZIP文件包:http://7i24.com/system/dl/,也可以去www.php.net中下载.注意版本要对应. 二,将sapi目录中的:php4isapi.dll复制到c:\php目录中 三,进入虚拟主机管理平台的"网站管理"-"虚拟主机"--服务器设置中,修改PHP的影射,将原来的: .php,C:\PHP\php.exe,5,GET,HEAD,POST,TRACE| 改成: .php,C:\PHP\php4isapi.dll,5,GE

  • centos配置ssh免密码登录后仍要输入密码的解决方法

    前言 在搭建Linux集群服务的时候,主服务器需要启动从服务器的服务,如果通过手动启动,集群内服务器几台还好,要是像阿里1000台的云梯Hadoop集群的话,轨迹启动一次集群就得几个工程师一两天时间,是不是很恐怖.如果使用免密登录,主服务器就能通过程序执行启动脚步,自动帮我们将从服务器的应用启动.而这一切就是建立在ssh服务的免密码登录之上的.所以要学习集群部署,就必须了解linux的免密码登录. 第一步:在本机中创建秘钥 1.执行命令: ssh-keygen -t rsa -C "xx@qq.

  • java验证用户是否已经登录 java实现自动登录

    本文为大家分享了java验证用户是否已经登录与实现自动登录的详细代码,供大家参考,具体内容如下 1.验证用户是否已经登录 package cn.hongxin.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletExceptio

随机推荐