Google, Facebook 및 전통적인 사용자 이름/암호를 통한 인증에 omniauth 및 omniauth-identity을 사용하고 있습니다. 나는 인증이 실패한 경우를 제외하고는 모두 잘 작동한다. 오류가 발생하면 (예 : 잘못된 암호를 입력 할 때) omniauth는 /auth/failure
을 호출합니다. 적절한 페이지로 리디렉션하고 플래시 메시지를 표시하는 컨트롤러에 매핑했습니다. 내가 가진 문제는 플래시를 실제로 표시 할 수 없다는 것입니다. 예제 코드 :Omniauth 인증 실패 콜백 처리
routes.rb
에서 :이 호출하는 컨트롤러에서
match "/auth/failure" => "sessions#failure"
:
def failure
redirect_to root_url, alert: "Authentication failed, please try again."
end
나는 플래시 인해 일을 무엇이든 omniauth의 조합 리디렉션 손실되고있다 생각합니다. 성공적인 로그인 메시지처럼 다른 것들을 깜박이기 때문에 뷰 코드가 정확하다는 것을 알고 있습니다. 플래쉬 메시지를 보여주기 위해 예제를 수정하는 방법에 대한 제안이나, 대체 omniauth 실패 처리 메커니즘에 대한 제안을 주시면 감사하겠습니다. 감사.
감사합니다. 아마도 나는이 적용하는 방법을 오해하고 있지만 ('에서 [omniauth 자주 묻는 질문]에서 redirect_after_failure' (https://github.com/intridea/omniauth/wiki/FAQ) 내가 현재 가지고있는에서 행동에는 다르지 않을 것으로 보인다) - 플래시 메시지가 없습니다. – SingleShot