2013-03-12 5 views
0

을 [Laravel]를 작동하지 않습니다 시도 내 문제입니다 : 내가있는 테이블 사용자가인증은 : 여기

:

ID 사용자 이름 이메일 주소 비밀번호

또한, 모델을 사용하고, 가입 할 때 모든 것이 잘됩니다.

@layout('main') 

@section('content') 


@if(Session::has('login_errors')) 

<div class='alert alert-error'>Wrong ID</div> 

@endif 

{{Form::open('user/login', 'POST', array('class' => 'well inline-form'))}} 

{{Form::token()}} 


{{Form::text('username', Input::old('username'), array('class' => 'input-large', 'placeholder' => 'email'))}} 
{{Form::password('password', array('class' => 'input-large', 'placeholder' => 'Mot de passe'))}} 

{{Form::submit('Login', array('class'=>'btn btn-primary'))}} 

{{Form::close()}} 

@endsection 

그리고 여기에 내가

public function action_login() 
{ 
    if(Auth::check()){return Redirect::to('user');} 

    if(Request::method() == 'POST') 
    { 

     $credentials = array('username' => Input::get('username'), 'password' => Input::get('password')); 

     if(Auth::attempt($credentials)) 
     { 
      return Redirect::to('user'); 
     } 

     else 
     { 

      return Redirect::to('user/login')->with_input()->with('login_errors', true); 

     } 
    } 


    Section::inject('title', 'Login'); 

    return View::make('user.login'); 

} 

그것은 작동해야 내 컨트롤러에 할 것입니다, 그러나 그렇지 않습니다 : 내가 여기에 로그인 할 때

지금 내 보기입니다 .

버그는 다음과 같습니다. 로그인 버튼을 클릭하면 내 양식이 내 컨트롤러로 전달되어 읽습니다. 나는 내 입력 :: get ('username'), 입력 :: get ('password')가 정확하고 db에 등록 된 것을 알고있다.

문제는 다음과 같습니다. 심지어 내 이메일/비밀번호가 정확하더라도 인증을받을 수없고 메시지가 나타납니다 잘못된 ID. 내가 ... 내가 분명

것들 희망 당신은 알아야한다 : 나는 설정에 Auth.php을 변경하지 않은

, 사용자 이름이 이메일

내가 함께 가입하실 때 암호를 해시 그래서 ' 비밀번호 '=> 해시 :: 만들기 (입력 : (얻을'암호 '))

확인

편집 및 솔루션을, 내가 그것을 알아 냈어! 모든

첫째 :

  • 내가 PHP는 5.3.6 사용 및 해시 필요 그 후 5.3.7 이상
  • , 내 DB에, 암호가 40 문자 최대 것을 깨달았다. 바로 가기를 가지고 그 방법을 사용하지 않는 여러 곳에서 주장한다 - 나는

이 컨트롤러 :() 결함이 접근 방식 감지, 그것은 하나를 들어 사람/스레드

+0

경로를 제공 해주실 수 있습니까? – bretterer

+0

내 경로는 정말 간단합니다 : Route :: controller (Controller :: detect()); –

답변

0

도움이 될 것입니다 희망 바보가 된 기분. 필요한 모든 경로를 지정하십시오. 가독성이 뛰어날뿐만 아니라 요청이 진행되는 과정을 더 쉽게 이해할 수 있습니다.

auth 구성을 변경하지 않은 경우 양식에서 제공 한 사용자 이름이 누군가의 이메일이어야 함을 의미합니다. 이는 인증이 검사 할 내용입니다. 그래서 이것이 사실인지 확인하십시오. 사용자 이름과 일치 시키려면 해당 이름도 설정해야합니다.

또한 더 많은 정보가 필요합니다. 실제로 작동하지 않는 것은 시작하지 않았고 작동하지 않습니다. 정확히 무엇이 효과가 없습니까? 위의 요점을 따르고 여전히 작동하지 않는지 확인하려면 더 많은 정보/코드가 필요합니다. Atm, 당신의 버그 리포트는 다소 결함이 있습니다.

+0

알았어, 경로를 알고 있지만 분명히 여기에 문제가 없다. (아직 Laravel을 배우고있다.) "나는 Auth.php를 변경하지 않았기 때문에 사용자 이름이 이메일이다." 나는 사용자 이름으로 이메일을 사용해야한다는 것을 알고 있으며 그것이 내가하는 일이다. 내 버그는 다음과 같습니다 : 로그인을 클릭하면 내 양식이 내 컨트롤러로 전달됩니다. 사용자 이름 (전자 메일)과 암호가 맞더라도 사용자가 틀린 사용자 이름/암호를 쓸 경우에 대비해 내가 작성한 오류가 계속 표시됩니다. 그래서 Auth :: 시도에 사용자 이름과 암호를 직접 전달하려고했습니다. 도 작동하지 않습니다 .. 희망이 있습니다. :) –

+0

불행히도 귀하의 보고서는 생각보다 명확하지 않으므로 더 많은 정보가 필요합니다. 다행스럽게도 그것을 알아 냈습니다 :) – Oddman