2014-04-09 5 views
0

Laravel 4에 대한 Jeffrey Way 인증 에센셜 자습서를 시험하고 있지만 동일한 결과를 얻지는 않습니다. (https://www.youtube.com/watch?v=msEwmVZ4wp4)Laravel 인증이 Auth :: 시도와 함께 실패합니다.

dd ($ 시도)를 확인할 때 올바른 자격 증명으로 로그인 한 경우에도 항상 false가 표시됩니다.

누군가 내가 잘못 가고 있다고 말해주십시오. 나는 이미 구글을 많이 사용하고 있으며 어떤 사람들은 암호를 해시 할 필요가 있다고 주장하고 데이터베이스에 넣기 전에 암호를 해쉬하지만 다른 곳에서는 여전히 오류가 있어야한다. 또한 여기에 코드의 가장 중요한 조각 http://help.laravel.io/faff81e66d3672cb96d5ae2f8d0cccbf2e7f9052

:

형태와 내보기 : create.blade.php

로그인

{{ Form::open(array('route' => 'sessions.store')) }} 

    <ul> 
     <li> 
      {{ Form::label('email', 'Email:')}} 
      {{ Form::text('email')}} 
     </li> 
     <li> 
      {{ Form::label('password', 'Password:')}} 
      {{ Form::password('password')}} 
     </li> 
     <li> 
      {{ Form::submit() }} 
     </li> 
    </ul> 

{{ Form::close() }} 
다음

내 코드입니다

그리고 내 SessionsController.php

여기

내 데이터베이스의 스크린 샷입니다 : http://i.imgur.com/sTGQu39.jpg

내가 올바른 로그인 자격 증명을 입력하면, 올바른로 DD ($ 시도)의 부울을 기대하지만, 항상 false를 보여줍니다.

사람이 내 코드 :

종류의 안부

조지

답변

1

데이터베이스의 스크린 샷에서 데이터베이스에 저장하기 전에 암호를 해싱하지 않았 음을 알 수 있습니다. Auth::attempt 함수는 암호가 해시 된 것으로 간주하여 주어진 암호에 Hash::make을 적용한 다음 데이터베이스에 저장된 암호와 비교합니다. 사용자를 등록 할 때

코드를 작동하게하려면 해시를 사용한다 :: 암호를 저장하기 전에 기능을합니다

$password = Hash::make($input['password']); 
$user->password = $password; 
$user->save(); 

이 문서에 봐 http://laravel.com/docs/security

1

문제는 정말 암호의 해시입니다 수정할 수 있습니다하십시오. 위에서 언급 한 방법으로 어떤

// Composer: "fzaninotto/faker": "v1.3.0" 
use Faker\Factory as Faker; 

class UsersTableSeeder extends Seeder { 

public function run() 
{ 
    $faker = Faker::create(); 

    foreach(range(1, 10) as $index) 
    { 
     User::create([ 
      'username' => $faker->name, 
      'email' => $faker->email, 
      'password' => Hash::make('1234') 
     ]); 
    } 
} 

} 

이전의 시도에서, 난 그냥 씨앗하려고 노력하지만, :

같은 문제 uppon 보았 지 누군가를 위해,이에 파종기를 변경합니다. 그럼에도 불구하고. 도움이된다면 누군가이 답변을 찾는 것이 더 운이 좋기를 바랍니다.

관련 문제