모든 이벤트를 수신하기 위해 훅을 설정했지만, 드롭다운 메뉴에서 로그아웃할 때 로그아웃 이벤트를 받지 못했습니다. 다만, API를 통해 로그아웃을 수행했을 때는 이벤트를 정상적으로 수신했습니다.
1개의 좋아요
네, 소스 코드를 확인한 후 다음 내용을 발견했습니다. (Ruby와 Ember.js는 처음 사용하므로 실수가 있을 수 있으니 양해 부탁드립니다.)
사용자 드롭다운 메뉴(quick-access-profile.js)의 “logout” 버튼은 ajax(/session/${this.username}, { type: "DELETE" })를 호출하며, 이는 session_controller.rb의 “destroy” 액션에 해당합니다.
이 액션이 “user_logged_out” 이벤트를 트리거하지 않는다는 것을 발견했습니다. 따라서 “destroy” 액션에 다음 한 줄을 추가한 후:
DiscourseEvent.trigger(:user_logged_out, current_user)
“user_logged_out” 웹훅이 트리거되었습니다.
이것은 session_controller.rb의 “destroy” 액션의 버그인가요, 아니면 “user_logged_out” 이벤트를 트리거하지 않는 것이 의도된 동작인가요?
저는 discourse를 SSO 제공자로 사용하고 있으며, 사용자가 discourse에서 로그아웃할 때 웹사이트에서도 사용자를 로그아웃시키기 위해 “user_logged_out” 웹훅을 사용하려고 하고 있습니다.
1개의 좋아요