# User API keys specification

**URL:** https://meta.discourse.org/t/user-api-keys-specification/48536
**Category:** Integrations
**Tags:** rest-api, reference
**Created:** [8월 12, 2016, 2:11오전 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536 "2016-08-12T02:11:53Z")
**Posts on this page:** 11
**Page:** 4

<div class="post-metadata">

### Author: ![szopin](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@szopin](https://meta.discourse.org/u/szopin)
#### Post date: [4월 19, 2024, 8:26오전 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/67 "2024-04-19T08:26:58Z")

</div>

사용자가 다음 엔드포인트를 사용할 때 detect-browser JavaScript를 건너뛰는 것이 합리적이라고 생각하시나요?

```plaintext
https://sitename.com/user-api-key/new

```

이들은 대부분 앱에서 리디렉션되어 해당 페이지에 도착할 가능성이 높으므로, JavaScript 엔진이 최신 상태인지 확인하는 것은 큰 의미가 없으며, 앱 내에서 사용할 API 키를 생성하려는 사용자의 동작을 차단할 뿐입니다.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [4월 19, 2024, 11:01오전 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/68 "2024-04-19T11:01:28Z")

</div>

하지만 작동하려면 로그인해야 합니다

---

<div class="post-metadata">

### Author: ![szopin](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@szopin](https://meta.discourse.org/u/szopin)
#### Post date: [4월 19, 2024, 11:11오전 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/69 "2024-04-19T11:11:31Z")

</div>

네, 그게 문제예요. user-api-key/new로 리다이렉트되면 로그인 페이지로 이동하는데, 그때 브라우저 검사가 시작됩니다. API 키 생성을 위해 로그인을 허용해 주려니, 브라우저가 너무 오래되었다고 오류가 나요. 사용자가 API 키 생성을 위해만 방문한 경우라면 이 검사를 건너뛰는 건 어떨까요?

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [4월 19, 2024, 11:26오전 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/70 "2024-04-19T11:26:40Z")

</div>

네, 그게 바로 문제입니다. JavaScript를 덜 사용해서 로그인하는 방법을 요청하는 셈인데, 우리가 지원하는 인증 옵션과 스팸 방지 조치가 매우 방대하기 때문에 이 작업은 엄청나게 복잡합니다.

---

<div class="post-metadata">

### Author: ![szopin](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@szopin](https://meta.discourse.org/u/szopin)
#### Post date: [4월 19, 2024, 12:03오후 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/71 "2024-04-19T12:03:27Z")

</div>

자바스크립트가 전혀 없어야 하는 것은 아닙니다. 그냥 로그인 폼에는 사이트 다른 곳에서 사용되는 모든 복잡한 기능이 정말로 필요하지 않잖아요? 적어도 인증/oauth2\_basic 패스스루의 경우, 99%가 헤더와 리다이렉트로 처리되므로 필요 없어 보입니다. 저는 SailfishOS에 있는 앱이 .json 파일과 API 키 전달로 완벽하게 작동하는데, 이는 해당 기기의 브라우저가 esr78 파이어폭스 기반이라 대부분의 Discourse 인스턴스에서 차단되지만 API 키를 통해 우회할 수 있어서 매우 좋습니다. 다만 API 키를 얻는 유일한 방법이 데스크톱에서 200자 이상의 URL을 수동으로 입력한 후, 생성된 코드를 휴대폰으로 복사해서 디코딩하는 것인데, 이건 정말 터무니없습니다.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [2월 24, 2025, 6:18오전 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/72 "2025-02-24T06:18:34Z")

</div>

5개의 게시글이 새로운 주제로 분리되었습니다: [User API keys should use OAEP padding](https://meta.discourse.org/t/user-api-keys-should-use-oaep-padding/354056)

---

<div class="post-metadata">

### Author: ![messiaslima](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/messiaslima/32/466278_2.png) [@messiaslima](https://meta.discourse.org/u/messiaslima)
#### Post date: [9월 21, 2025, 4:06오후 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/74 "2025-09-21T16:06:28Z")

</div>

여러분 안녕하세요. 저는 서드파티 클라이언트를 사용하여 User API 키로 로그인을 하고 있었습니다. 예전에는 잘 작동했는데, 지금은 일부 사이트에서 오류 메시지가 나옵니다.

메시지는 다음과 같습니다.

```plaintext
Oops
The software powering this discussion forum encountered an unexpected problem. We apologize for the inconvenience.

Detailed information about the error was logged, and an automatic notification generated. We'll take a look at it.

No further action is necessary. However, if the error condition persists, you can provide additional detail, including steps to reproduce the error, by posting a discussion topic in the site's feedback category.

```

최근 버전에서 이 기능에 변경 사항이 있었나요?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [9월 21, 2025, 4:29오후 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/75 "2025-09-21T16:29:16Z")

</div>

> [@messiaslima](#):
>
> 제3자 클라이언트를 사용하여 로그인할 때 사용자 API 키를 사용했습니다.

"로그인"을 말씀하시는 건가요? 실제로 무엇을 하고 계신지는 모르겠지만, 그 작업을 수행하는 더 나은 방법은 [discourse connect](https://meta.discourse.org/t/13045?silent=true)일 것 같습니다.

오류에 대한 추가 정보를 얻으려면 로그를 확인해야 합니다.

---

<div class="post-metadata">

### Author: ![messiaslima](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/messiaslima/32/466278_2.png) [@messiaslima](https://meta.discourse.org/u/messiaslima)
#### Post date: [9월 21, 2025, 5:08오후 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/77 "2025-09-21T17:08:58Z")

</div>

커스텀 UI를 사용하고 있으므로 사용자 대신 작업을 수행해야 합니다. 이를 위해 사용자 API 키를 사용하고 있습니다.

이를 위해 다음 URL을 사용합니다.

```plaintext
https://discussion.fedoraproject.org/user-api-key/new?auth_redirect=discourse%3A%2F%2Fauth_redirect&application_name=DisCorkie&client_id=019695ed-8b7e-71b1-b55e-7efe8be1e9ae&scopes=read%2Cwrite%2Cnotifications%2Cpush%2Csession_info&push_url=https%3A%2F%2Fherxbktlunuawewahana.supabase.co%2Ffunctions%2Fv1%2Fdiscourse-webhook&public_key=-----BEGIN+PUBLIC+KEY-----%0AMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD%2BNgNuAMv2ZSSR95V1B%0Afla9n3HbCPxAFB5%2B%2BitC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe%2BfgtS5F3Q%0AGvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3%0A4eExqEYoGK7tBxr3%2FnVYO%2FogOaibzhoZRiSh69gq6ptXWN9Pka%2Fb3%2Fp2hWF5MSwG%0AK39LiZKOzaga%2BsA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX%0AKakxrmZzWwibN%2Bzboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k%2FaSWFAe8FO0doQ%0AxVoh9qVhlvPq3DdLhcjC0djVNti3X%2BYC2bwUDSp%2BFhrLh%2BsYribCAp6P8TyZ5TZy%0Aw0WnDCatK%2FzPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx%0Ag2mTR15Qe%2FRh6yY4fB610mcut%2BBU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK%2BVVC%0AfMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg%0A4teQs4VecqIe%2Bv6p7BurFgwlKZyWN0n89u8%2BXihwwwOcVp1UHblqbl%2FKYi5%2BgK6O%0AyahsLRGMGllNIsqarYCZ9nkCAwEAAQ%3D%3D%0A-----END+PUBLIC+KEY-----%0A&nonce=-1646128802

```

여기서

**매개변수**  
**auth\_redirect:** discourse://auth\_redirect  
**application\_name:** DisCorkie  
**client\_id:** 019695ed-8b7e-71b1-b55e-7efe8be1e9ae  
**scopes:** read,write,notifications,push,session\_info  
**push\_url:** [https://herxbktlunuawewahana.supabase.co/functions/v1/discourse-webhook](https://herxbktlunuawewahana.supabase.co/functions/v1/discourse-webhook)  
**public\_key:**  
-----BEGIN PUBLIC KEY-----  
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD+NgNuAMv2ZSSR95V1B  
fla9n3HbCPxAFB5++itC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe+fgtS5F3Q  
GvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3  
4eExqEYoGK7tBxr3/nVYO/ogOaibzhoZRiSh69gq6ptXWN9Pka/b3/p2hWF5MSwG  
K39LiZKOzaga+sA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX  
KakxrmZzWwibN+zboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k/aSWFAe8FO0doQ  
xVoh9qVhlvPq3DdLhcjC0djVNti3X+YC2bwUDSp+FhrLh+sYribCAp6P8TyZ5TZy  
w0WnDCatK/zPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx  
g2mTR15Qe/Rh6yY4fB610mcut+BU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK+VVC  
fMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg  
4teQs4VecqIe+v6p7BurFgwlKZyWN0n89u8+XihwwwOcVp1UHblqbl/KYi5+gK6O  
yahsLRGMGllNIsqarYCZ9nkCAwEAAQ==  
-----END PUBLIC KEY-----  
**nonce:** -1646128802

`/login`으로 리다이렉트되며, 브라우저가 `/session/csrf`를 성공적으로 호출합니다. 여기까지는 문제가 없습니다.

그러나 브라우저가 `/auth/oauth2_basic`을 호출할 때 500 오류가 발생합니다.

응답은 이 오류 메시지만 반환되며 추가 정보는 없습니다.

Discourse hub도 유사한 인증 플로우를 수행하지만 정상적으로 작동합니다. 제가 놓치고 있는 부분이 있을까요?

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [9월 21, 2025, 7:06오후 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/78 "2025-09-21T19:06:40Z")

</div>

> [@messiaslima](#):
>
> 응답은 이 오류 메시지만 있고 추가 정보는 없습니다.

`/logs`에 뭐가 있나요?

---

<div class="post-metadata">

### Author: ![messiaslima](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/messiaslima/32/466278_2.png) [@messiaslima](https://meta.discourse.org/u/messiaslima)
#### Post date: [9월 22, 2025, 10:30오전 UTC](https://meta.discourse.org/t/user-api-keys-specification/48536/79 "2025-09-22T10:30:43Z")

</div>

조사를 해본 결과, 4096비트 키를 사용했기 때문에 이 문제가 발생했음을 확인했습니다. 키 크기를 2048비트로 변경하니 정상적으로 작동하기 시작했습니다.

이 키 크기는 필수 요구사항인가요? 어딘가에 문서화되어 있나요?

[Previous page](https://meta.discourse.org/t/user-api-keys-specification/48536.md?page=3)
