2012-03-29 3 views
0

내 CakePHP 앱에서 "비밀번호 재설정"기능을 구축하고 그물을 읽으 려하고 다음과 같이 결정했습니다. 사용자가 이메일 주소를 입력하고 http://www.mysite.com/users/reset_password/generated_uuid_that_expires_in_24_hours 링크가 포함 된 이메일을 보내도록하십시오. 그러면 암호를 변경할 수있는 양식이 표시됩니다. 분명히 딸꾹질은 임시 비밀번호로 사용자를 기록하는 방법을 모른다는 것입니다. 이 문제에 올바르게 접근하고 있습니까? 나는 그들에게 URL을 보내면 url에 임시 이메일 주소를 더한 해시 된 버전이 될 것이라고 생각하고 있으며 url에 들어있는 이메일을 기반으로 사용자 아이디 조회를 수행 할 것이다. 여전히 수동으로 로그인하여 암호를 변경할 수있는 방법을 모르겠습니다.암호를 재설정 할 때 '임시'로그인 자격 증명이 필요합니까?

+2

비밀번호를 변경하려면 사용자가 로그인해야하는 이유는 무엇입니까? 나는 그것을하는 많은 시스템을 생각할 수 없다. 잊어 버리면 리셋 과정을 마칠 때까지 잠겨있어 새로운 비밀번호를 입력 한 다음 로그인해야한다. – Ross

+0

OIC. 나는이 접근법을 확실히 좋아한다. 나는 그들이 암호를 변경하도록 한 다음 나중에 편의를 위해 자동으로 로그인 할 수 있다고 생각할 수 있습니까? 아닙니다. – huzzah

답변

1

세션 접근 방식을 사용합니다. 이메일에서 토큰을 사용 후 사용자가 그 암호를 변경할 수 있습니다 세션에서

Tmp.User.id (as opposed to Auth.User.id) 

을 가져옵니다. 이후 세션에서 다시 제거됩니다.

+0

AuthComponent를 사용하는 것처럼이 사용자는 완전히 로그인됩니다. Acl이 앱에 설치되어 있다면 얼마나 효과가 있습니까? – huzzah

+0

당신이 방해하지 않도록하십시오! 당신의 행동은 공개 (Auth-> allow)이고이 컨트롤러 동작의 논리를 처리합니다 (세션에 Tmp.User.id 키가없는 경우 허용하지 않음). – mark

+0

좋아, 나는 그것을 조사 할 것이다. 내가 Auth를 사용했기 때문에 지금까지는 세션을 사용할 수 없었으므로 재미 있어야합니다! 고맙습니다 (BTW Google지도 도우미가 심각한 엉덩이를 걷어 찼습니다 !!!) – huzzah

관련 문제