외부 웹사이트에 등록되어 있는 사용자만 내 Discourse 포럼에서 계정을 생성할 수 있도록 하고 싶습니다. 제 웹사이트에는 인증 기능이 없고 SQL 데이터베이스에 단순히 등록만 이루어지기 때문에 SSO API를 사용할 수 없다고 생각합니다.
SQL 데이터베이스(내 웹사이트)에 등록된 사용자만 가입할 수 있도록 가입 시 조건을 설정할 수 있을까요?
외부 웹사이트에 등록되어 있는 사용자만 내 Discourse 포럼에서 계정을 생성할 수 있도록 하고 싶습니다. 제 웹사이트에는 인증 기능이 없고 SQL 데이터베이스에 단순히 등록만 이루어지기 때문에 SSO API를 사용할 수 없다고 생각합니다.
SQL 데이터베이스(내 웹사이트)에 등록된 사용자만 가입할 수 있도록 가입 시 조건을 설정할 수 있을까요?
저는 디스커스 전문가가 아니지만, 이 문제를 처리하는 방법은 여러 가지가 있고, 제가 시도해 볼 가치가 있다고 생각하는 방법은 다음과 같습니다:
기본적으로 디스커스는 웹훅과 API가 잘 갖춰져 있어, 원격에서 원하는 언어로 커스텀 스크립트를 작성하면서 이를 활용할 수 있습니다.
루비로 디스커스 플러그인을 작성하는 것에 문제가 없다면 그 방법도 작동할 것입니다. 하지만 개인적으로는 그렇지 못해 이 방법을 더 쉬운 것으로 생각합니다.
이를 수행하는 방법 중 하나는 invite only(초대만 허용) 및 must approve users(사용자 승인 필요) 사이트 설정을 활성화하는 것입니다. 이 설정이 활성화되면, 사이트에 초대받은 사용자만 계정을 생성할 수 있습니다. must approve users 사이트 설정으로 인해 비스태프 사용자는 초대를 보낼 수 없으므로, 초대는 스태프 사용자만 보낼 수 있습니다.
이후 SQL 데이터베이스에서 이메일 주소를 추출하여 CSV 파일에 추가할 수 있습니다. 이 파일을 사용하여 대량 사용자 초대 보내기에 나와 있는 단계를 따르며 사용자를 대량으로 초대할 수 있습니다.
제안해 주셔서 감사합니다, Jonathan.
가입을 승인하거나 거절하는 데 사용할 API를 찾을 수 없었습니다.
시몬, 감사합니다.
데이터베이스가 넓고 업데이트 가능한 것이 문제입니다.
GitHub에서 Discourse 코드베이스를 검색해 보니 put "/review/#{reviewable.id}/perform/approve_user.json"과 같은 approve_user 액션을 찾았습니다. 필요한 reviewable ID를 얻기 위해 먼저 reviewables를 가져와야 할 것 같습니다.