2013-09-11 2 views
0

약간 이상한 문제를 제외하고는 잘 작동하는 비밀번호 재설정 메커니즘을 구축 중입니다. Redirect::to('/login')은 Password :: reset() 부분에서 호출하면 작동하지 않습니다. Laravel 4 Password :: reset에서 호출하면 Redirect :: to가 작동하지 않습니다.

Password::reset($credentials, function($user, $password) { 
     $user->password = Hash::make($password); 
     $user->save(); 

}); 
return Redirect::to('/login'); 

그러나이 경우

가 어떻게 사용자의 이메일이 실제 토큰에 속하는 확인합니까 : 나는 그것을 밖으로 넣어 경우

Password::reset($credentials, function($user, $password) { 
     $user->password = Hash::make($password); 
     $user->save(); 
     return Redirect::to('/login'); 
}); 

그러나 그것은 작동?

이상적으로 나는주의 깊게

Password::reset($credentials, function($user, $password) { 
     $user->password = Hash::make($password); 
     $user->save(); 
     return Redirect::to('/login'); // success you may use your new password 
}); 
return Redirect::to('/reset'); // validation falied try one more time 

답변

4

확인 docs on password resets 같은 것을 싶어 - 당신은 Password::reset()이 폐쇄의 결과를 반환 않습니다 것입니다. 이렇게하면 Redirect::to 전화가 반환됩니다. 귀하의 질문에서 "이상적인"버전을 사용

이 바로 Password::reset() 전에 return 문 및 유효성 검사의 움직임의 추가주의/Password::reset()에 문의하기 전에 일이 리디렉션 :

여기
if(! VALIDATION FAILED) 
{ 
    return Redirect::to('/reset'); // validation failed, try one more time 
} 

return Password::reset($credentials, function($user, $password) { 
     $user->password = Hash::make($password); 
     $user->save(); 
     return Redirect::to('/login'); // success, you may use your new password 
}); 

무엇을의 즉, 문서의 예제처럼 보이는 : 암호 재설정 여기에 실패

enter image description here

+0

경우, 폐쇄가 실행되지 않습니다 및 암호 :: 리셋 바 리디렉션합니다 동일한 페이지로 이동하십시오. 그런 다음 동일한 비밀번호 확인을 실행하고 동일한 페이지로 다시 리다이렉트합니다. 아마도 Password :: reset 전에 어떤 종류의 검사가 필요하고 오류가 발생하여 다시 양식으로 리디렉션하거나이 페이지에 메시지 만 표시 할 수 있습니까? – Jason

+0

비밀번호 재설정 실패시 위의 내용은 즉시 리디렉션됩니다. 사용자에게 다시 표시하기 위해 입력 데이터를 양식으로 플래싱 할 기회가 없습니다. 이 문제를 해결하려면'return Password :: reset (...)'을 호출하기 전에'Input :: flash();'를 수행하십시오. 비밀번호와 그 확인을 다시 표시하고 싶지는 않지만'Form :: text ('email'), Input :: old ('email'))'사용자의 이메일을 다시 표시하는 데 도움이됩니다. – Jason

관련 문제