Devise의 로그 아웃 경로를 재정 의하여 request.referer로 지정했습니다. 그 문제는 사용자가 authenticate_user가있는 페이지에있는 경우입니다! 필터를 적용하기 전에 로그인 페이지로 이동하여 오류가 표시되었습니다. 이것은 이상적인 것이 아니며 사용자가 인증 요구 사항이있는 경로에서 오는 경우에만 root_path로 리디렉션하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?devise의 리디렉션 경로를 로그 아웃
0
A
답변
0
리퍼러 URL이 연결된 컨트롤러의 콜백을 검사하는 결과를 보았습니다. authenticate_*!
콜백이 있으면 @if
인스턴스 변수에 지정된 작업이 있는지 각각 검사합니다. 없음이 있으면 콜백이 모든 작업에 적용되며 참조하는 URL이 제한된 작업의 것이라는 것을 알고 있습니다. 지정된 동작이있는 경우 regex를 사용하여 참조 동작이 제한되는지 여부를 확인합니다.
기준을 충족시키는 모든 콜백이 배열에 추가됩니다. 콜백을 반복 한 후 해당 배열이 비어 있는지 확인합니다. 이 경우 사용자는 request.referer
으로 다시 보냅니다. 비어 있지 않은 경우 request.referer
으로 전송하면 로그인 페이지로 리디렉션되고 오류가 표시됩니다. 이 경우 사용자는 root_path
으로 전송됩니다.
오류가 발생하면 사용자는 root_path
으로 전송됩니다.
def after_sign_out_path_for(resource_or_scope)
begin
controller_name = Rails.application.routes.recognize_path(request.referer)[:controller]
controller_class = "#{controller_name}_controller".camelize.constantize
authentication_callbacks = controller_class._process_action_callbacks.select { |callback| callback.filter.match /authenticate_\w+!/ }
action_name = Rails.application.routes.recognize_path(request.referer)[:action]
restricting_callbacks = []
authentication_callbacks.each do |callback|
callback_scope = callback.instance_variable_get(:@if)
if callback_scope.empty? || callback_scope.first.match(/action_name\s==\s(\'|\")#{Regexp.quote(action_name)}(\'|\")/)
restricting_callbacks << callback
end
end
restricting_callbacks.empty? ? request.referer : root_path
rescue Exception => e
request.referer
end
end
: 여기
코드입니다
관련 문제
- 1. 로그 아웃 후 리디렉션
- 2. 리디렉션 로그 아웃 경로
- 3. 로그 아웃 리디렉션 오류
- 4. 아약스에서 사인 아웃 로그 아웃 리디렉션
- 5. WordPress 리디렉션 로그인/로그 아웃
- 6. 새로 고침로드 리디렉션 로그 아웃
- 7. 로그 아웃 후 Magento 리디렉션
- 8. 로그인 및 로그 아웃 리디렉션
- 9. devise의 sign_up 페이지에서 '로그 아웃'링크 제거하기
- 10. 심포니에서 로그 아웃 경로를 만들려면 어떻게해야합니까?
- 11. 로그 아웃
- 12. GET 대신 POST를 사용하려면 devise의 로그 아웃을 변경하는 방법?
- 13. PHP 헤더를 사용하여 로그 아웃 페이지에 리디렉션()
- 14. 로그 아웃 후 리디렉션 탱크 인증 CodeIgniter
- 15. http : //0000000.000000www .. Wordpress에서 로그 아웃 리디렉션
- 16. 로그 아웃 및 리디렉션 처리 방법
- 17. 로그 아웃 페이지로 리디렉션 할 수 없습니다.
- 18. devise로 로그 아웃 한 후 리디렉션
- 19. 로그 아웃 후 mvc 페이지 리디렉션
- 20. jQuery를 사용하여 로그 아웃 및 리디렉션
- 21. 로그 아웃 페이지로 리디렉션 할 수 없습니다
- 22. Symfony2 LogoutSuccessHandler를 원래 로그 아웃 대상으로 리디렉션
- 23. 어떻게 로그 아웃
- 24. 인증 실패 후 FOSUserBundle 리디렉션 | 로그 아웃 후 리디렉션
- 25. Cakephp AUTH, 접두사에 대한 다른 로그인/로그 아웃 리디렉션
- 26. Jasig CAS 싱글 로그 아웃 - 로그 아웃
- 27. asp.net 세션 로그 아웃
- 28. 로그 아웃
- 29. 로그 아웃
- 30. Wordpress 로그 아웃 404