如何在 laravel 5.2 后同时获取电子邮件和密码
Posted
技术标签:
【中文标题】如何在 laravel 5.2 后同时获取电子邮件和密码【英文标题】:how can I get email and password at the same time methop post laravel 5.2 【发布时间】:2016-10-01 15:50:40 【问题描述】:我想在调用 AuthController@login 方法时获取电子邮件和密码,但控制器中没有。
我的项目:我想保存登录时的所有活动、错误的密码、错误的电子邮件、用户尝试进入系统的次数以及正确的登录。
我的模型 UserActivity 具有以下属性:电子邮件、密码、日期时间。
我想创建一个新变量并将其保存userActivity->save()
;当我调用 POST 方法登录时。
我用
php artisan make:auth
但在 AuthController.php 中我只发现了该功能。
function __construct
function validator
function create
但是我用 php artisan route:list 命令得到了这条路线
POST | login | | App\Http\Controllers\Auth\AuthController@login | web,guest |
namespace App\Http\Controllers\Auth;
use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
class AuthController extends Controller
/*
|--------------------------------------------------------------------------
| Registration & Login Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users, as well as the
| authentication of existing users. By default, this controller uses
| a simple trait to add these behaviors. Why don't you explore it?
|
*/
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new authentication controller instance.
*
* @return void
*/
public function __construct()
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
(我以这种方式创建 laravel 登录是因为更容易,但我只想做不同的事情。抱歉我的英语不好)。
【问题讨论】:
【参考方案1】:Illuminate/Foundation/Auth/AuthenticatesUsers.php
中有方法postLogin
可以被覆盖。
例如在AuthController
中添加:
/**
* Handle a login request to the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function postLogin(Request $request)
dd($request->all());
return parent::postLogin($request);
【讨论】:
对不起,但是当我登录时,dd()指令不起作用,所以我找不到可以立即获取电子邮件和密码的步骤我开始POST登录方法 您是否将该方法粘贴到App\Http\Controllers\Auth\AuthController
中??
是的,我把方法粘贴在 App\Http\Controllers\Auth\AuthController.php 文件中,Validator 和 Create 函数之间,dd() 方法必须中断正常的登录并显示我的属性,但是,我登录没有任何中断。以上是关于如何在 laravel 5.2 后同时获取电子邮件和密码的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 忘记密码的模式弹出窗口显示 500 内部服务器错误,同时运行 ajax 功能
在 Laravel 5.2 中使用 mailchimp API
Laravel 5.2 Eloquent ORM 从 3 个表中获取数据