Laravel5.3兼容两个字段作为账号实现登录认证
以Laravel5.3.2来做的实验 5.N.x x级别的小版本,laravel版本管理的很差,可能多是开发版。
A. 如果你想只一个字段登录系统,而且不是email字段的话,直接修改\vendor\laravel\framework\src\Illuminate\Foundation\Auth\ 下面的这个AuthenticatesUsers.php
username()方法是处理用的哪个字段登录的,改成你需要的那个字段名称就行,例如改成'mobile'修改之后,也要记得在模板中,改为$errors->has('mobile')来获取错误。
B.兼容两个字段:
多加一个判断就可以的,给一个统一的命名
1. 登录页面,将blade改成name为login的用户名,统一用作 可以选择Email/Mobile 来登陆
同样,将获取报错信息也改成login
login.blade.php的修改
2. 修正登录部分的字段
① username()方法为 return 'login';
② 登陆尝试的判断,修改为我们需要的来试验
直接修改\vendor\laravel\framework\src\Illuminate\Foundation\Auth\ 下面的这个AuthenticatesUsers.php
C. 修改Auth/LoginController.php来实现
在LoginController中直接添加两个方法来实现,这两个方法复制来自
\vendor\laravel\framework\src\Illuminate\Foundation\Auth\ 下面的这个AuthenticatesUsers.php,为credentials和username方法,然后进行修改,demo示例为假设blade中login为账户名的name值
,然后这样的情况下,AuthenticatesUsers.php可以保持原来的样子不变化。