如何在 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 个表中获取数据

Laravel 5.2 将变量传递给查询生成器

如何通过邮件方法将数据从 ajax 传输到 laravel 5.2 控制器

laravel 5.2 如何在刀片中获取路由参数?