首页 / PHP / Laravel实现多字段登录
Laravel实现多字段登录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Laravel实现多字段登录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2218字,纯文字阅读大概需要4分钟。
内容图文
现在很多网站都提供了这样的功能,用户可以通过邮箱、手机号或者昵称来登录网站,下面是在 Laravel (以 5.1 为例)中实现该功能的方式。下面三种方法基本原理都是相同的。
1. 方法一
使用 Laravel 自带认证系统,修改 /app/Http/Controllers/Auth/AuthController.php 文件,重写方法(原方法所在文件 /vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php):
namespace App\Http\Controllers\Auth;......use Illuminate\Http\Request; // 增加该行class AuthController extends Controller{ protected $username = 'login'; .... protected function getCredentials(Request $request) { $login = $request->get('login'); $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'name'; return [ $field => $login, 'password' => $request->get('password'), ]; }}
2. 方法二
修改 /app/Http/Controllers/Auth/AuthController.php 文件,这也是使用 Laravel 自带认证系统的一种方法。
namespace App\Http\Controllers\Auth;......use Illuminate\Http\Request; // 增加该行class AuthController extends Controller{ // 修改这里 use AuthenticatesAndRegistersUsers, ThrottlesLogins { AuthenticatesAndRegistersUsers::postLogin as laravelPostLogin; } ...... // 增加方法 public function postLogin(Request $request) { $field = filter_var($request->input('login'), FILTER_VALIDATE_EMAIL) ? 'email' : 'name'; $request->merge([$field => $request->input('login')]); $this->username = $field; return self::laravelPostLogin($request); }}
3. 方法三
重写登录功能
LoginRequest.php:
public function rules(){ return [ 'login' => 'required', 'password' => 'required' ];}
AuthController.php:
public function login(LoginRequest $request){ $field = filter_var($request->input('login'), FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; $request->merge([$field => $request->input('login')]); if ($this->auth->attempt($request->only($field, 'password'))) { return redirect('/'); } return redirect('/login')->withErrors([ 'error' => 'These credentials do not match our records.', ]);}
该篇属于专题:《Laravel小技巧》
- 上一篇: 《 Laravel更改登录时使用的默认字段名称email》
内容总结
以上是互联网集市为您收集整理的Laravel实现多字段登录全部内容,希望文章能够帮你解决Laravel实现多字段登录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。