제 클라이언트는 Memberpress가 설치된 WordPress를 사용하고 있으며, 사용자가 Memberpress에 로그인하여 Discourse에 접근합니다.
Memberpress 플랜이 활성 상태인 사용자에게만 Discourse 접근을 허용하는 방법이 있을까요?
감사합니다
Per
제 클라이언트는 Memberpress가 설치된 WordPress를 사용하고 있으며, 사용자가 Memberpress에 로그인하여 Discourse에 접근합니다.
Memberpress 플랜이 활성 상태인 사용자에게만 Discourse 접근을 허용하는 방법이 있을까요?
감사합니다
Per
Discourse 로그인 제한 방법에 대한 자세한 내용은 이 주제의 첫 번째 답변을 참고하세요: How to prevent some WP users from being able to login to Discourse. 이는 WordPress 사이트가 Discourse의 SSO 제공자로 작동하고 WP Discourse 플러그인을 사용하고 있다는 가정 하에 설명합니다.
Simon, 감사합니다. 정말 좋습니다! ![]()
이렇게 하면 사용자를 Discourse로 라우팅하기 전에 액세스 권한을 확인할 수 있습니다.
혹시 사용자가 활성 구독을 가지고 있는지 확인하는 좋은 방법이 있는지 알고 계신가요?
이것이 Discourse로 라우팅할지 말지를 결정하는 조건이 될 것입니다.
감사합니다!!
방법은 분명히 있을 것 같지만, WordPress에서 사용자의 Memberpress 구독 레벨에 어떻게 접근해야 하는지는 잘 모르겠습니다. 다만, 우리의 Support > WordPress 카테고리 게시물에 이를 수행하는 방법에 대한 예시가 있을 수도 있습니다.
네, 감사합니다 ![]()
즐거운 주말 보내세요!
다른 분들도 같은 문제를 해결하려고 하신다면, 여기서 해결책을 찾았습니다:
https://stackoverflow.com/questions/29744672/how-can-i-detect-if-user-has-subscribed-memberpress-product-already
Simon: 마지막 질문 하나만 더 드릴게요: 사용자가 Discourse에 로그인한 후 로그아웃되기까지 얼마나 오래 유지되나요? 아니면 “로그아웃” 버튼을 클릭할 때까지 영원히 로그인된 상태인가요?
이것은 Discourse의 maximum session age(최대 세션 유지 시간) 사이트 설정으로 제어됩니다. 이 설정의 기본값은 1440시간입니다. 매우 작은 값으로 설정하지 않는 한, 사용자를 로그아웃시키는 신뢰할 수 있는 방법은 아닙니다. 이는 사용자가 마지막 방문 이후 로그인 상태를 유지할 수 있는 시간을 설정하기 때문입니다. maximum session age를 매우 작은 시간 단위로 설정하면 사이트 사용자들에게 일부 불편함을 초래할 수도 있습니다.
가장 좋은 접근 방식은 멤버십이 만료될 때 API를 통해 사용자를 Discourse에서 로그아웃시키는 것입니다. 이를 수행하는 방법에 대한 코드 예제는 다음 링크에서 확인할 수 있습니다: wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub. 멤버십이 만료될 때 Discourse에서 사용자를 로그아웃시키기 위해 API 호출을 구현하려면 개발자의 도움이 필요할 수 있습니다.
logout_from_discourse() 함수를 그냥 호출하면 되나요, 아니면 그 코드를 전부 복사해야 하나요?
logout_from_discourse() 함수를 단순히 호출하는 것만큼 간단하지는 않지만, WordPress 사이트에서 특정 작업이 실행될 때 해당 함수를 호출하도록 WordPress 액션 훅을 사용하는 것이 가능해야 합니다. 예를 들어, 사용자의 멤버십 레벨이 해제될 때입니다. 아마도 Discourse 커뮤니티에서 그 작업을 위해 필요한 구문으로 도움을 줄 수 있을 것입니다.