# 사용자 API 키: 중복된 client\_id로 인해 내부 서버 오류 발생

**URL:** <https://meta.discourse.org/t/user-api-keys-duplicate-client-id-will-lead-to-internal-server-error/260995>\
**Category:** Bug\
**Tags:** rest-api\
**Created:** [4월 7, 2023, 11:16오후 UTC](https://meta.discourse.org/t/user-api-keys-duplicate-client-id-will-lead-to-internal-server-error/260995 "2023-04-07T23:16:23Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![Indra](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/indra/32/215866_2.png) [@Indra](https://meta.discourse.org/u/Indra)\
**Post date:** [9월 16, 2023, 12:54오후 UTC](https://meta.discourse.org/t/user-api-keys-duplicate-client-id-will-lead-to-internal-server-error/260995/8 "2023-09-16T12:54:01Z")

</div>

> [@blake](#):
>
> 이 문제를 로컬에서 디버깅할 수 있도록 기본적인 재현 방법을 제공해 주시겠어요?

어떤 형태의 재현 방법을 선호하시는지 확실하지는 않지만, 아래 PHP 코드 조각으로 잘 재현됩니다.

> **코드**
>
> ```php
> <?php
> 
> // openssl genrsa -out keypair.pem 2048
> $keypair = openssl_pkey_get_private(file_get_contents("keypair.pem"));
> 
> // 공개 키 가져오기
> $public = openssl_pkey_get_details($keypair)["key"];
> 
> // 쿼리 생성
> $query = http_build_query([
> "auth_redirect" => "https://localhost/redirect",
> "application_name" => "Test repro",
> "client_id" => "7624a5376b7f52eb403a",
> "scopes" => "session_info",
> "nonce" => bin2hex(random_bytes(16)),
> "public_key" => $public
> ]);
> 
> $url = "https://forum.cfx.re/user-api-key/new?" . $query;
> header("Location: " . $url);
> 
> ```

첫 번째 인증 및 반복 인증은 첫 번째 사용자로 성공하지만, client\_id를 변경하지 않고 다른 사용자에게 다시 사용하면 실패합니다.  
 ![image](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/5/a/6/5a6e13b09fe2683b0f816fd11bcc3a2e2b693778.png)

> [@blake](#):
>
> user-api-keys의 사용 사례는 무엇인가요? discourse hub 모바일 앱을 사용 중이신가요, 아니면 다른 것을 사용 중이신가요?

User API 키는 사용자가 게임 클라이언트에서 포럼 계정을 사용할 수 있도록 허용하는 데 사용되며, 이를 통해 게임 내에서 게시물을 올릴 수 있습니다. 또한 많은 사용자가 자신의 웹사이트에서 포럼 계정으로 인증하는 데 이를 사용하기도 합니다.

게임 클라이언트의 경우 클라이언트 ID는 고유해야 하므로, 각 클라이언트가 앱 화면에서 별도의 클라이언트로 나열됩니다. 웹사이트 사용 사례의 경우, 각 로그인이 별도로 나열되지 않도록 하나의 클라이언트 ID를 사용하는 것이 좋습니다.

---

_[View the full topic](https://meta.discourse.org/t/user-api-keys-duplicate-client-id-will-lead-to-internal-server-error/260995)._
