2017-01-03 105 views
0

我是laravel框架的初学者。我现在在laravel 5.2中有认证问题。我试过但我找不到错误。laravel中的用户验证错误

电子邮件和密码正确,但它正在重定向到登录页面。

这里是我的DB

+----+-------+-----------------+----------+-------+----------------+---------------------+---------------------+ 
| id | name | email   | password | phone | remember_token | created_at   | updated_at   | 
+----+-------+-----------------+----------+-------+----------------+---------------------+---------------------+ 
| 1 | Admin | [email protected] | 111111 |  | NULL   | 2017-01-03 05:40:06 | 2017-01-03 05:40:06 | 
+----+-------+-----------------+----------+-------+----------------+---------------------+---------------------+ 

下面是UserController的

<?php 

namespace App\Http\Controllers; 

use Illuminate\Support\Facades\Validator; 

use Illuminate\Support\Facades\Auth; 

use Illuminate\Http\Request; 

use App\Http\Requests; 

use App\User; 

use DB; 


class UserController extends Controller 
{ 
    public function index() 
    { 
     if(!Auth::check()) { 
      return view('user/index'); 
     } else { 
      return view('user/profile'); 
     } 
    } 

    public function login(Request $request) 
    { 
     if(Auth::attempt(array( 

      "email" => "[email protected]", 
      "password" => "111111", 

     ))) { 
      return redirect('user/profile'); 
     } else { 
      return redirect('user/login'); 
     } 
    } 
} 
+1

为什么密码存储没有散列? ?在数据库中存储'$ 2y $ 10 $ POrpktOrPPwuj4u3P1vQeekle6xPnJTDmNYHqIGHDqTeymnZA4BFC'而不是111111,然后尝试,我给你的字符串是'111111'的哈希。 –

+0

if语句的哪个部分到达了?同时检查您的服务器是否启用了会话,并且已经正确配置了.env文件 – Phorce

+0

Laravel预计您的数据库密码被散列。 :/ –

回答

3

在数据库需要存储的密码加密format.Auth ::尝试()将密码转换为加密的形式与数据库中的密码进行比较。

在数据插入到你需要使用

bcrypt($密码)的数据库;