> ## Documentation Index
> Fetch the complete documentation index at: https://generaltranslation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth2PKCEAuth

이 모듈은 안전한 인가 플로우를 위한 OAuth2 PKCE(Proof Key for Code Exchange) 인증 기능을 제공합니다. 코드 검증자(code verifier) 생성, 토큰 관리, 토큰 자동 갱신 기능을 포함합니다.

<div id="class-xdkoauth2_authoauth2pkceauth">
  ### `class xdk.oauth2_auth.OAuth2PKCEAuth`
</div>

X API용 OAuth2 PKCE 인증입니다.

<div id="parameters">
  #### 매개변수
</div>

<ParamField path="path.base_url" type="str" default="'https://api.x.com'" />

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'" />

<ParamField path="path.client_id" type="str or None" default="None" />

<ParamField path="path.client_secret" type="str or None" default="None" />

<ParamField path="path.redirect_uri" type="str or None" default="None" />

<ParamField path="path.token" type="Dict[str, Any] or None" default="None" />

<ParamField path="path.scope" type="str or List[str] or None" default="None" />

<div id="__init__">
  ### `__init__`
</div>

OAuth 2 PKCE 인증을 초기화합니다.

<div id="parameters">
  #### 매개변수
</div>

<ParamField path="path.base_url" type="str" default="'https://api.x.com'">
  X API 토큰 엔드포인트용 기본 URL입니다 (기본값은 [https://api.x.com](https://api.x.com)입니다).
</ParamField>

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'">
  OAuth2 인가용 기본 URL입니다 (기본값은 [https://x.com/i](https://x.com/i)입니다).
</ParamField>

<ParamField path="path.client_id" type="str or None" default="None">
  X API용 클라이언트 id입니다.
</ParamField>

<ParamField path="path.client_secret" type="str or None" default="None">
  X API용 클라이언트 시크릿입니다.
</ParamField>

<ParamField path="path.redirect_uri" type="str or None" default="None">
  OAuth2 인가용 리디렉트 URI입니다.
</ParamField>

<ParamField path="path.token" type="Dict[str, Any] or None" default="None">
  기존 OAuth2 토큰 딕셔너리입니다 (있는 경우).
</ParamField>

<ParamField path="path.scope" type="str or List[str] or None" default="None">
  OAuth2 인가 범위를 나타내는 공백으로 구분된 문자열 또는 문자열 리스트입니다.
</ParamField>

<div id="exchange_code">
  ### `exchange_code`
</div>

인가 코드를 토큰으로 교환합니다(TypeScript API와 동일합니다).

<div id="parameters">
  #### 매개변수
</div>

<ParamField path="path.code" type="str">
  콜백에서 전달된 authorization code입니다.
</ParamField>

<ParamField path="path.code_verifier" type="str or None" default="None">
  선택적인 code verifier입니다. 제공되지 않으면 저장된 verifier를 사용합니다.
</ParamField>

<div id="returns">
  #### 반환값
</div>

`Dictstr, Any`

<div id="fetch_token">
  ### `fetch_token`
</div>

인가 응답 URL을 사용해 토큰을 가져오는 레거시 메서드입니다(내부적으로 `exchange_code`를 사용합니다).

<div id="parameters">
  #### 매개변수
</div>

<ParamField path="path.authorization_response" type="str">
  인가 후에 받은 전체 콜백 URL
</ParamField>

#### 반환

`Dictstr, Any`

<div id="get_authorization_url">
  ### `get_authorization_url`
</div>

OAuth2 PKCE 플로우용 인가 URL을 반환합니다.

<div id="parameters">
  #### 매개변수
</div>

<ParamField path="path.state" type="str or None" default="None">
  보안 강화를 위한 선택적 state 매개변수입니다.
</ParamField>

#### 반환

`str`

<div id="get_code_challenge">
  ### `get_code_challenge`
</div>

현재 code challenge(PKCE용)을 가져옵니다.
:returns: 현재 설정된 code challenge를 반환하며, 설정되지 않은 경우 None을 반환합니다.
:rtype: Optional\[str]

<div id="returns">
  #### 반환값
</div>

`str | None`

<div id="get_code_verifier">
  ### `get_code_verifier`
</div>

현재 code verifier(PKCE용)를 반환합니다.
:returns: 현재 code verifier를 반환합니다. 설정되지 않은 경우 None을 반환합니다.
:rtype: Optional\[str]

<div id="returns">
  #### 반환값
</div>

`str | None`

<div id="is_token_expired">
  ### `is_token_expired`
</div>

토큰이 만료되었는지 확인합니다.
:returns: 토큰이 만료되었으면 True, 아니면 False.
:rtype: bool

<div id="returns">
  #### 반환값
</div>

`bool`

<div id="refresh_token">
  ### `refresh_token`
</div>

액세스 토큰을 갱신합니다.
:returns: 갱신된 토큰 딕셔너리
:rtype: Dict\[str, Any]

<div id="returns">
  #### 반환값
</div>

`Dictstr, Any`

<div id="set_pkce_parameters">
  ### `set_pkce_parameters`
</div>

수동으로 PKCE 매개변수를 설정합니다.

<div id="parameters">
  #### 매개변수
</div>

<ParamField path="path.code_verifier" type="str">
  사용할 code verifier 값입니다.
</ParamField>

<ParamField path="path.code_challenge" type="str or None" default="None">
  선택적 code challenge 값입니다 (제공되지 않은 경우 자동으로 생성됩니다).
</ParamField>
