当前位置:编程学习 > > 正文

laravel后台登录教程(Laravel 默认邮箱登录改成用户名登录的实现方法)

时间:2021-10-28 10:05:18类别:编程学习

laravel后台登录教程

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

Laravel中默认的登录是通过邮箱和密码进行登录的。那么,怎么样才能用最少的改动将它改成用密码登录呢?

默认的,Laravel使用的是 Illuminate\Foundation\Auth\AuthenticatesUsers 这个trait完成登录功能的。通过观察 AuthenticatesUsers 的代码,发现下面一段很有意思的代码:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 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;

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • use Illuminate\Foundation\Auth\AuthenticatesUsers as LaravelAuthenticatesUsers;
  • trait AuthenticatesUsers {
  •  use LaravelAuthenticatesUsers;
  •   public function username()
  •   {
  •     return 'name';
  •   }
  • }
  • 其实还有另一个简单的修改方式,直接在LoginController中新增 username() 方法。由于当前定义方法会覆盖trait的方法,因此也能达到修改的目的。但是会破坏登录代码的整体一致性,所以最好还是通过新增trait的方式实现。

    同时要记得修改前端blade文件中对输入参数的验证,然后就可以使用用户名登录了

    laravel后台登录教程(Laravel 默认邮箱登录改成用户名登录的实现方法)

    总结

    以上所述是小编给大家介绍的Laravel 默认邮箱登录改成用户名登录的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    原文链接:https://mp.weixin.qq.com/s?__biz=MzAxNTIzNDYxMQ==&mid=2247484031&idx=1&sn=9685a1490f7cdf60fea4c043e826012a&utm_source=tuicool&utm_medium=referral

    上一篇下一篇

    猜您喜欢

    热门推荐