簡體   English   中英

Laravel 5.1 - 驗證用戶名,密碼和如果確認= 1

[英]Laravel 5.1 - Authenticate Username, Password AND if confirmed = 1

把頭發拉出來似乎是一項簡單的任務。 我使用以下代碼在我的AuthController使用username而不是email

/**
 * 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

我做錯了什么?

安迪

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

if ($this->auth->attempt($credentials, $request->has('remember')))

應該

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

在Laravel 5.1中,AuthController類構造函數中不存在$ auth屬性,如5.1升級指南中所述 所以你引用了一個不存在的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM