자동차 클럽을 위한 유료 접근이 제한된 Discourse 포럼을 설정하고 있는데, 구독자에게 사이트 접근 권한을 부여하는 과정에서 문제가 발생하고 있습니다. 현재 사용자가 특정 그룹에 속해 있는지 확인하는 사용자 정의 코드가 있으며, 속해 있지 않으면 각 멤버십 3가지를 위한 Stripe 결제 링크가 있는 웹사이트로 리다이렉트됩니다.
해당 코드는 다음과 같습니다:
<script type="text/discourse-plugin" version="0.8.42"> api.onPageChange((url, title) => { const allowedGroups = ['Lite', 'Member', 'VIP', 'staff']; const isUserInAllowedGroup = api.getCurrentUser().groups.some(group => allowedGroups.includes(group.name)); if (!isUserInAllowedGroup) { window.location.href = "https://centralcoastdriversclub.webflow.io/select-a-plan"; } }); </script>
설치 관련 문서를 자세히 읽었고, 세 가지 웹훅 이벤트를 설정했으며 모든 지침을 정확히 따랐지만 여전히 원활하게 작동하지 않습니다. 첫 번째 문제는 웹사이트에서 Stripe 상품 구매 링크를 사용할 때, checkout.session.completed의 경우 “이메일을 찾을 수 없음”, customer.subscription.updated의 경우 "고객을 찾을 수 없음"이라는 422 오류가 웹훅에서 발생한다는 것입니다. 당연히 이로 인해 Discourse에 구독이 생성되지 않고 사용자에게 그룹이 부여되지도 않습니다. 가장 이상적인 상황은 웹사이트에서 사람들이 구매하려는 특정 멤버십으로 바로 이동할 수 있는 링크를 제공하는 것입니다.
포럼 URL /s/subscriptions를 통해 테스트하면 멤버가 Discourse의 구독 탭에 추가되긴 하지만, 불행히도 여전히 해당 그룹에 추가되지 않습니다. 또한 Discourse를 통해 진행할 때 사용자의 계정에 이메일이 고정되는 동적 링크를 사용한다는 점도 흥미롭습니다.
제 코드와 이전 설명에서 짐작하셨을 수 있겠지만, 사용자가 올바른 그룹에 추가되지 않으면 코드가 리다이렉트하기 때문에 포럼을 볼 수 없습니다.
무언가를 놓친 것 같지만, 아무리 찾아봐도 원인을 알 수 없습니다.
도움을 주시면 매우 감사하겠습니다. 미리 감사합니다!