Laravel 5.1 - 验证用户名,密码和如果确认= 1

时间:2016-02-08 18:33:44

标签: php authentication laravel-5 laravel-5.1 laravel-authorization

将头发拉出来看似简单的任务。我使用以下代码在我的username中使用email代替AuthController

/**
 * Set the login system to use username instead of email address
 * @var string
 */
protected $username = 'username';

这已经很好地工作了很长时间(当我没有计划用户激活他们的帐户时)。但是,现在我需要用户激活他们的帐户,我知道我需要在他们看到他们的仪表板之前对登录进行额外的检查。

我已将下面的postLogin()方法修改为我认为正确的方法:

public function postLogin(Request $request)
{
    $this->validate($request, [
        'username' => 'required', 'password' => 'required',
    ]);

    $credentials = $request->only('username', 'password');
    $credentials = array_add($credentials, 'confirmed', '1');

    if ($this->auth->attempt($credentials, $request->has('remember')))
    {
        return redirect()->intended($this->redirectPath());
    }

    return redirect($this->loginPath())
                ->withInput($request->only('username', 'remember'))
                ->withErrors([
                    'username' => $this->getFailedLoginMessage(),
                ]);
}

但我得到的是以下错误:

Undefined property: App\Http\Controllers\Auth\AuthController::$auth

我做错了什么?

安迪

2 个答案:

答案 0 :(得分:4)

我看到的只是一个小故障。

if (Auth::attempt($credentials, $request->has('remember')))

应该是

$('body').on('click', '.btn', function(){ // do something });

答案 1 :(得分:0)

在Laravel 5.1中,AuthController类构造函数中不存在$ auth属性,如5.1 upgrade guide中所述。因此,您引用了一个不存在的属性。