2013-10-08 2 views
0

새 암호를 복구하는 데 문제가 있습니다. 메일러 설정이 있는데 비밀번호 지침을 잘 받았습니다. 이메일에서 비밀번호 재설정 링크를 클릭하면 새 비밀번호 페이지로 변경됩니다. 그러나 새 암호를 입력하면 "다음 문제를 검토하십시오."라는 메시지가 나타나며 암호는 변경되지 않았습니다. 당신이 볼 수 있듯이3.0.2 암호를 복구하십시오. 무단으로. Rails

2013-10-08T17:10:35.118663+00:00 app[web.1]: Started PUT "https://stackoverflow.com/users/password" for 24.87.52.189 at 2013-10-08 17:10:35 +0000 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Processing by Devise::PasswordsController#update as HTML 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Parameters: {"utf8"=>"✓", "authenticity_token"=>"7LQ4VtOfwDZTV2tw4YwPoj8sqD6UGeCd5NvQkdANrH0=", "user"=>{"reset_password_token"=>" [FILTERED]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Change my password"} 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Rendered devise/shared/_links.erb (0.4ms) 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Rendered devise/passwords/edit.html.erb within layouts/application (5.2ms) 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Rendered layouts/_shim.html.erb (0.0ms) 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Rendered layouts/_footer.html.erb (0.6ms) 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Completed 200 OK in 232ms (Views: 8.9ms | ActiveRecord: 0.0ms) 
2013-10-08T17:10:35.741022+00:00 heroku[router]: at=info method=GET path=/users/password host=skalefree.net fwd="24.87.52.189" dyno=web.1 connect=1ms service=20ms status=302 bytes=101 
2013-10-08T17:10:35.725344+00:00 app[web.1]: Started GET "https://stackoverflow.com/users/password" for 24.87.52.189 at 2013-10-08 17:10:35 +0000 
2013-10-08T17:10:35.883843+00:00 app[web.1]: Rendered devise/sessions/new.html.erb within layouts/application (9.6ms) 
2013-10-08T17:10:35.883843+00:00 app[web.1]: Rendered layouts/_shim.html.erb (0.0ms) 
2013-10-08T17:10:35.883843+00:00 app[web.1]: Rendered layouts/_header.html.erb (1.3ms) 
2013-10-08T17:10:35.883843+00:00 app[web.1]: Rendered layouts/_footer.html.erb (1.0ms) 
2013-10-08T17:10:35.883843+00:00 app[web.1]: Completed 200 OK in 23ms (Views: 19.6ms | ActiveRecord: 0.0ms) 
2013-10-08T17:10:35.354246+00:00 app[web.1]: Rendered layouts/_header.html.erb (0.9ms) 
2013-10-08T17:10:35.735631+00:00 app[web.1]: Parameters: {"id"=>"password"} 
2013-10-08T17:10:35.883843+00:00 app[web.1]: Processing by Devise::SessionsController#new as */* 
**2013-10-08T17:10:35.735631+00:00 app[web.1]: Completed 401 Unauthorized in 3ms** 
2013-10-08T17:10:35.735631+00:00 app[web.1]: Processing by UsersController#show as */* 
2013-10-08T17:10:35.883843+00:00 app[web.1]: Rendered devise/shared/_links.erb (0.5ms) 
2013-10-08T17:10:35.856371+00:00 app[web.1]: Started GET "https://stackoverflow.com/users/sign_in" for 24.87.52.189 at 2013-10-08 17:10:35 +0000 
2013-10-08T17:09:38.753083+00:00 heroku[router]: at=info method=GET path=/users/sign_in host=www.skalefree.net fwd="24.87.52.189" dyno=web.1 connect=14ms service=45ms status=200 bytes=3688 
2013-10-08T17:10:35.892408+00:00 heroku[router]: at=info method=GET path=/users/sign_in host=skalefree.net fwd="24.87.52.189" dyno=web.1 connect=2ms service=40ms status=200 bytes=3783 

, 내가 거기에 허가받지 않은 301이 : 나는 로그를 확인하면

나는이를 참조하십시오. 누구든지이 문제에 대한 해결책을 알고 있습니까?

devise_for :users, skip: :registrations 

devise_scope :user do 

    resource :registration, 

    only: [:new, :create, :edit, :update], 

    path: 'users', 

    path_names: { new: 'sign_up' }, 

    controller: 'devise/registrations', 

    as: :user_registration do 

    get :cancel 

    end 

end 

그리고 내 사용자 모델 :

devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable 

그리고 내 초기화 : 당신의 도움에 미리

config.reset_password_keys = [ :email ] 

감사

여기 내 경로입니다! 그것에서 오는 같은

+0

최신 버전으로 책정 여전히 작동하지 않는 경우를 참조 업그레이드하는 것이 좋습니다. '3.1.x' – AJcodez

+0

안녕하세요, Devise 3.1은 새로운 보안 변경 사항을 가져와 구현이 더욱 복잡해졌습니다. 나는 처음에 3.1에 있었고 그 해결책이되기를 바랬다. lol – user2662857

답변

0

무단 외모 :

Started GET "https://stackoverflow.com/users/password" for 24.87.52.189 at 2013-10-08 17:10:35 +0000 
... 
    Parameters: {"id"=>"password"} 

그리고 않고 사용자가 없습니다 : 아이디 비밀번호, 또는 그런 일이. 기본적으로 올바르게 리디렉션되지 않거나 무언가를 무시하고 있음을 의미합니다.

Started GET "https://stackoverflow.com/users/password/edit?reset_password_token=[FILTERED]" for 127.0.0.1 at 2013-10-08 14:22:19 -0400 
Processing by Devise::PasswordsController#edit as HTML 

암호 및 확인과 양식 제출 : 암호를 재설정하는 이메일 메시지에

Started POST "https://stackoverflow.com/users/password" for 127.0.0.1 at 2013-10-08 14:22:02 -0400 
Processing by Devise::PasswordsController#create as HTML 

클릭 링크 :

지침 버튼을 보낼 이메일 주소를 입력하고 클릭 : 타임 라인은 다음과 같아야합니다

Started PUT "https://stackoverflow.com/users/password" for 127.0.0.1 at 2013-10-08 14:22:24 -0400 
Processing by Devise::PasswordsController#update as HTML 
... 
Redirected to <some-url-here> 
Completed 302 Found in 243ms (ActiveRecord: 6.9ms) 

비밀번호 c의 업데이트 방법처럼 보입니다. ontroller가 방향을 바꾸지 않습니다. 하는 경로에 응용 프로그램 컨트롤러에 after_sign_in_path_for 설정 방법 아닌 경우 유증 경로를 수정 참조 :

def after_sign_in_path_for(user) 
    some_path 
end 
+0

그 방법을 사용하려면 필터 전에 필요합니까? 그리고 (사용자)에 어떤 변수를 사용해야합니까? 현재 사용자? – user2662857

+0

그냥 응용 프로그램 컨트롤러에서 정의하십시오. 'user'는 방금 내 서명으로 얻은 장치 자원입니다 (그래서 current_user). – AJcodez

+0

문제는 여전히 지속되고 로그는 동일하게 보입니다. 왜 "/ users/password"에 대한 요청을 시작하고 "UsersController # show"가 처리하는지 이유가 무엇입니까? 이로 인해 승인되지 않은 오류가 발생합니다. 사용자에게 요청을 보내면/암호가 필요합니다. 암호 컨트롤러가 처리해야합니까? – user2662857

관련 문제