【问题标题】:how can I get email and password at the same time methop post laravel 5.2如何在 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 登录是因为更容易,但我只想做不同的事情。抱歉我的英语不好)。

【问题讨论】:

    标签: php database authentication laravel-5.2 laravel-artisan


    【解决方案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() 方法必须中断正常的登录并显示我的属性,但是,我登录没有任何中断。
    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    相关资源
    最近更新 更多