2017-04-25 123 views
0

我正在使用Laravel 5.4並使用laravel auth來註冊和登錄用戶。它的工作很好。Laravel登錄表單不適用於由管理員創建的用戶

問題:我從管理面板創建用戶也是如此。但是從管理面板創建的用戶無法登錄。

登錄表單對於兩種表單(前端註冊表格和管理面板用戶註冊表單)都是相同的。並且登錄表單適用於使用前端表單而不是其他登錄表單的用戶。

我正在用bcrypt(123456)加密用戶密碼,我也試過Hash :: make(123456)。

數據庫表對於兩個用戶都是相同的(從前端創建並從管理面板創建)。

$user = new User(); 
$user->name    = $request->input('name'); 
$user->email    = $request->input('email'); 
$user->password   = bcrypt(123456); 
$user->save(); 

錯誤我得到的登錄:這些憑據沒有匹配我們的記錄

我應該怎麼辦?命名空間use Illuminate\Support\Facades\Hash;

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Hash; 
use App\Http\Controllers\Controller; 

class UpdatePasswordController extends Controller 
{ 
    /** 
    * Update the password for the user. 
    * 
    * @param Request $request 
    * @return Response 
    */ 
    public function update(Request $request) 
    { 
     // Validate the new password length... 

     $request->user()->fill([ 
      'password' => Hash::make($request->newPassword) 
     ])->save(); 
    } 
} 

注重這一點,如果你想硬編碼密碼替換Hash::make($request->newPassword)

Stored record in db:

+0

顯示您的登錄代碼。 –

+0

嘗試使用'\ Hash :: make('123456')'作爲密碼 – Nerea

+0

我正在使用默認的laravel登錄名。我還沒有修改 –

回答

0

如果你使用這個控制器上你可以按照Laravel散列文件與Hash::make('password')

這裏鏈接Hashing Documentation

0
User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 

嘗試)

-1
$user=Users::where('email' , $email) 
      ->where("confirmed" , 1) 
      ->first(); 
    if(empty($user)) 
    { 
     return false; 
    } 
    else 
    { 
     if (Hash::check($parola, $user->password)){ 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 
+0

$ parola是輸入密碼 –

0

我找到了答案,以我的問題。自動驗證bcrypt()密碼字段...當您保存用戶時,不需要對其進行限制。

+0

驗證不會自動散列任何內容。 RegisterController在'create'方法中顯式地散列密碼。 https://github.com/laravel/laravel/blob/master/app/Http/Controllers/Auth/RegisterController.php#L68 – lagbox

+0

@lagbox檢出密碼字段,它將密碼存儲在數據庫的散列中。我沒有bcrypt()這個密碼。http://prntscr.com/f0x67j –

相關問題