# 외부 데이터베이스에 등록된 이메일로만 계정 생성

**URL:** https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015
**Category:** Support
**Created:** [11월 13, 2020, 8:49오전 UTC](https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015 "2020-11-13T08:49:17Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![Habib.ELGHOUL](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/habib.elghoul/32/199991_2.png) [@Habib.ELGHOUL](https://meta.discourse.org/u/Habib.ELGHOUL)
#### Post date: [11월 13, 2020, 8:49오전 UTC](https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015/1 "2020-11-13T08:49:17Z")

</div>

외부 웹사이트에 등록되어 있는 사용자만 내 Discourse 포럼에서 계정을 생성할 수 있도록 하고 싶습니다. 제 웹사이트에는 인증 기능이 없고 SQL 데이터베이스에 단순히 등록만 이루어지기 때문에 SSO API를 사용할 수 없다고 생각합니다.

SQL 데이터베이스(내 웹사이트)에 등록된 사용자만 가입할 수 있도록 가입 시 조건을 설정할 수 있을까요?

---

<div class="post-metadata">

### Author: ![JonathanShaw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathanshaw/32/532672_2.png) [@JonathanShaw](https://meta.discourse.org/u/JonathanShaw)
#### Post date: [11월 13, 2020, 2:56오후 UTC](https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015/2 "2020-11-13T14:56:34Z")

</div>

저는 디스커스 전문가가 아니지만, 이 문제를 처리하는 방법은 여러 가지가 있고, 제가 시도해 볼 가치가 있다고 생각하는 방법은 다음과 같습니다:

1. 새로운 디스커스 사용자의 승인을 요구합니다.
2. 원격 웹사이트나 서버리스 환경에서 스크립트를 개발하여 데이터베이스에서 특정 사람을 조회한 후, 디스커스 API를 호출하여 새 사용자를 승인하거나 거절합니다.
3. 새 사용자가 등록되면 디스커스가 해당 스크립트에 웹훅 호출을 하도록 설정합니다.
4. 사용자에게 현재 진행 중인 사항을 더 잘 설명할 수 있도록 디스커스의 문구를 사용자화합니다.

기본적으로 디스커스는 웹훅과 API가 잘 갖춰져 있어, 원격에서 원하는 언어로 커스텀 스크립트를 작성하면서 이를 활용할 수 있습니다.

루비로 디스커스 플러그인을 작성하는 것에 문제가 없다면 그 방법도 작동할 것입니다. 하지만 개인적으로는 그렇지 못해 이 방법을 더 쉬운 것으로 생각합니다.

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [11월 13, 2020, 6:18오후 UTC](https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015/3 "2020-11-13T18:18:59Z")

</div>

> [@Habib.ELGHOUL](#):
>
> SQL 데이터베이스(내 웹사이트)에 이미 등록된 사람만 가입할 수 있도록 가입 시 조건을 설정할 수 있나요?

이를 수행하는 방법 중 하나는 `invite only`(초대만 허용) 및 `must approve users`(사용자 승인 필요) 사이트 설정을 활성화하는 것입니다. 이 설정이 활성화되면, 사이트에 초대받은 사용자만 계정을 생성할 수 있습니다. `must approve users` 사이트 설정으로 인해 비스태프 사용자는 초대를 보낼 수 없으므로, 초대는 스태프 사용자만 보낼 수 있습니다.

이후 SQL 데이터베이스에서 이메일 주소를 추출하여 CSV 파일에 추가할 수 있습니다. 이 파일을 사용하여 [대량 사용자 초대 보내기](https://meta.discourse.org/t/sending-bulk-user-invites/16468)에 나와 있는 단계를 따르며 사용자를 대량으로 초대할 수 있습니다.

---

<div class="post-metadata">

### Author: ![Habib.ELGHOUL](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/habib.elghoul/32/199991_2.png) [@Habib.ELGHOUL](https://meta.discourse.org/u/Habib.ELGHOUL)
#### Post date: [11월 16, 2020, 9:59오전 UTC](https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015/4 "2020-11-16T09:59:46Z")

</div>

제안해 주셔서 감사합니다, Jonathan.  
가입을 승인하거나 거절하는 데 사용할 API를 찾을 수 없었습니다.

---

<div class="post-metadata">

### Author: ![Habib.ELGHOUL](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/habib.elghoul/32/199991_2.png) [@Habib.ELGHOUL](https://meta.discourse.org/u/Habib.ELGHOUL)
#### Post date: [11월 16, 2020, 10:02오전 UTC](https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015/5 "2020-11-16T10:02:07Z")

</div>

시몬, 감사합니다.  
데이터베이스가 넓고 업데이트 가능한 것이 문제입니다.

---

<div class="post-metadata">

### Author: ![JonathanShaw](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jonathanshaw/32/532672_2.png) [@JonathanShaw](https://meta.discourse.org/u/JonathanShaw)
#### Post date: [11월 16, 2020, 1:46오후 UTC](https://meta.discourse.org/t/create-account-only-for-e-mails-registred-in-my-external-database/170015/6 "2020-11-16T13:46:53Z")

</div>

GitHub에서 Discourse 코드베이스를 검색해 보니 `put "/review/#{reviewable.id}/perform/approve_user.json"`과 같은 `approve_user` 액션을 찾았습니다. 필요한 reviewable ID를 얻기 위해 먼저 reviewables를 가져와야 할 것 같습니다.
