2015-12-16 102 views
3

我使用內置的註冊和登錄代碼Laravel 5.1問題在驗證用戶:laravel 5.1

我在做什麼?

我做了註冊並且憑證正在成功保存。

什麼問題?

當我嘗試登錄時,它說「這些憑據與我們的記錄不匹配。」

postLogin方法,我看到的代碼:$credentials = $this->getCredentials($request);並且當我在$credentials打印的值,發現Password值是純文本。

可能執行時總是說找不到用戶

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

請給我建議的路徑

+0

使用bcrypt()隱窩您的密碼正確的格式。 – goldlife

+0

這是否意味着它是Laravel 5.1 Authentication模板中的錯誤?我很抱歉,我的意思是,內置身份驗證模板中缺少密碼加密,而身份驗證? – Pankaj

+0

是你在用戶表中加密的密碼,還是你的db中的純文本? 是否有可能您有另一個用戶名字段?通常這是EMAIL列......你在數據庫中有這個字段嗎? – goldlife

回答

0

我做了框架中的許多變化。這些更改就像在用戶表中添加新列和代碼更改一樣。也從password更改爲Password。然後我意識到,在Authenticatable classgetAuthPassword功能,它必須Password,而不是password

0

您應該使用bcrypt加密用戶密碼是這樣的原因,下面的線。

$user = new App\User; 
$user->email = '[email protected]'; 
$user->password = bcrypt('plain-text-password'); 
$user->save(); 

哈希::檢查方法可以驗證一個給定的純文本字符串 對應於一個給定的哈希值。

if (Hash::check('plain-text-password', $hashedPassword)) { 
    // The passwords match... 
} 
+0

我們在這裏有'PostLogin' POST方法'vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Auth \ AuthenticatesUsers.php '。 **問題**:我會在哪裏編寫'bcrypt'代碼?原因我問這個問題,因爲'postLogin'方法具有'Request'類型的參數。 – Pankaj

+0

當你添加新用戶時,你應該寫'bcrypt'。 – kotapeter

+0

該部分已在註冊碼中完成。問題是在PostLogin中進行身份驗證。 – Pankaj