Hunter님,
현재 베타 단계이지만 Discourse 통합은 잘 진행되고 있습니다. 저희 사이트에서 로그인 강제를 위해 SSO 통합을 사용하고 있습니다. 잘 작동하고 있지만, 몇 가지 사항을 확인했습니다.
- Discourse는 사용자명에 “@” 기호가 포함된 것을 허용하지 않습니다… “@” 앞부분만 잘라서 사용자명을 저장합니다… 나중에 해당 사용자명을 인자로 Discourse API를 호출할 때 문제가 될 수 있습니다. Discourse에서는 someone@example.com과 같은 사용자명을 인식하지 못합니다. Discourse에서 해당 사용자의 사용자명은 "someone"으로 저장되어 있기 때문입니다… 이 문제를 피하기 위한 쉬운 방법은 자체 사용자명에서 “@” 기호를 사용하지 않는 것입니다!
- 사용자가 자체 사이트에 가입할 때, SSO 사용자를 동기화하기 위해 Discourse API를 명시적으로 호출해야 합니다. 이는 사용자가 Discourse 사이트를 처음 방문하기 전에 해당 사용자와 관련된 작업(예: Discourse 그룹에 추가)을 수행하려는 경우에 필요합니다(처음 방문 시 SSO가 자동으로 동기화됩니다). 저는 Django 기반 사이트를 사용하고 있으며, pydiscourse 라이브러리를 사용하여 sync_sso 메서드로 이를 쉽게 처리하고 있습니다 (pydiscourse · PyPI)
네, 일부 과정은 만료됩니다. 이 경우 서버가 Discourse API를 호출하여 해당 과정의 일반 그룹과 해당 과정 내 코호트에 전담된 그룹에서 사용자를 제거합니다.
저는 Django 사이트에서 이러한 “과정” 그룹과 각 과정 내의 다양한 “코호트” 그룹을 추적하는 테이블을 생성했습니다. 따라서 학생을 추가/제거할 때 이 정보를 사용합니다:
