아래는 keycloak.js라는 javascript 공식 라이브러리의 코드 중 일부입니다. 아래와 같이 logout이후에 방문할 페이지를 parameter로 제공하면, post_logout_redirect_uri라는 이름으로 전달하고 있습니다. 물론 post_logout_redirect_uri는 optional이지만, 제공해야한다고 할때, 카톡의 로그인의 경우만, 따로 logout_redirect_uri로 이름을 바꿔서 제공해야하기 때문에, 다른 identity_provider와는 다르게 정의해야해서, 유지보수 문제가 존재합니다.
https://github.com/keycloak/keycloak/blob/cf386efa40034ad788c265520316a1c30dfe30da/adapters/oidc/js/src/keycloak.js#L482
kc.createLogoutUrl = function(options) {
var url = kc.endpoints.logout()
+ '?post_logout_redirect_uri=' + encodeURIComponent(adapter.redirectUri(options, false))
+ '&id_token_hint=' + encodeURIComponent(kc.idToken);
return url;
};
이것이 필요한 이유는, 웹에서 로그아웃시 카카오톡도 같이 세션을 만료시키고 싶습니다. 아래 문서에 나온 기능을 사용하려하는데, logout_redirect_uri를 입력하지 않으면, KOE207(필수 파라미터 누락) 에러가 발생합니다. 따라서, 저희 서비스에서 로그아웃과 동시에, 카카오에서도 로그아웃을 하기 위해서는, logout_redirect_uri가 필수적으로 보입니다.
https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#logout-of-service-and-kakaoaccount
번외로, https://kauth.kakao.com/oauth/logout
은 https://kauth.kakao.com/.well-known/openid-configuration
에서 end_session_endpoint로 추가되어야하는게 맞지 않나요?