안녕하세요. 저희는 Exercism 포럼에 Discourse를 사용하고 있습니다. 개발해 주셔서 감사합니다.
저희 워크플로우의 일부로, GitHub 이슈가 자동으로 닫히며 대신 포럼 게시글을 작성하도록 요청됩니다. 이때 포럼 게시글의 본문이 URL의 일부로 포함됩니다. 오늘 한 게시글을 제외하고는 이 기능이 잘 작동해 왔습니다.
이 GitHub 이슈로 이동하여 “this link” 링크를 클릭해 보시면, “Oops. The software powering this discussion forum encountered an unexpected problem. We apologize for the inconvenience”라는 메시지로 끝나는 OAuth 루프가 발생함을 확인하실 수 있습니다.
포럼에 이미 로그인되어 있는 상태에서는 문제가 없이 작동합니다. (최소 제 경우에는 그렇습니다. 유지보수 담당자들로부터는 의견이 엇갈리는 보고를 받았습니다.)
본문에는 슬래시(/)와 파운드 기호(#)처럼 URL 인코딩이 필요한 텍스트가 포함되어 있습니다.
브라우저는 이러한 문제를 처리하는 지능적인 방식을 사용하므로 직접 접근할 때는 동작합니다. 그러나 우리의 리다이렉트 로직은 주어진 매개변수를 통해 대상 URL을 설정하고, 원래 주어진 매개변수를 대상으로 합니다. 적절한 인코딩이 없으면 이것이 특정 리다이렉트를 깨뜨리는 원인이 될 것으로 추정됩니다.
본문이 인코딩된 URL 링크를 사용하면 이 문제가 발생하지 않습니다. 올바르게 인코딩된 링크는 다음과 같습니다: