> ## 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.

# PIN ベース認可

export const Button = ({href, children}) => {
  return <div className="not-prose group">
    <a href={href}>
      <button className="flex items-center space-x-2.5 py-1 px-4 bg-primary-dark dark:bg-white text-white dark:text-gray-950 rounded-full group-hover:opacity-[0.9] font-medium">
        <span>
          {children}
        </span>
        <svg width="3" height="24" viewBox="0 -9 3 24" class="h-6 rotate-0 overflow-visible"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>
      </button>
    </a>
  </div>;
};

<div id="pin-based-authorization">
  ### PIN ベースの認可
</div>

PIN ベースの OAuth フローは、[3-legged OAuth](/ja/resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens) プロセスの一種で、認可後にユーザーをリダイレクトするための Web ブラウザーにアクセスできない、またはブラウザーを埋め込めないアプリケーション向けに設計されています。該当するアプリケーションの例としては、コマンドラインアプリケーション、組み込みシステム、ゲームコンソール、および一部の種類のモバイルアプリなどがあります。

PIN ベースの OAuth フローは、`oauth_callback` を `oob` に設定した `request_token` を App が発行することで開始されます。`oob` という用語は out-of-band OAuth を意味します。ユーザーは引き続き X にアクセスしてログインまたは App を認可しますが、アクセスを承認しても自動的にアプリケーションへリダイレクトされることはありません。その代わりに、数値の PIN コードが表示され、アプリケーションに戻ってこの値を入力するよう指示されます。

<Note>
  **Note:** PIN ベースの認可を使用する場合でも、X の App 設定内の `callback_url` は必須です。
</Note>

 

<div id="implementing-the-pin-based-oauth-flow">
  #### PIN ベース OAuth フローの実装
</div>

PIN ベースのフローは、以下の点を除いて [3-legged authorization](/ja/resources/fundamentals/authentication/oauth-1-0a/obtaining-user-access-tokens) (および [Sign in with X](/ja/resources/fundamentals/authentication#log-in-with-x)) と同じ方法で実装します。

1. [POST oauth/request\_token](/ja/resources/fundamentals/authentication/api-reference#post-oauth-request-token) の呼び出し時に、`oauth_callback` の値を `oob` に設定する必要があります。

2. ユーザーが [GET oauth/authenticate](/ja/resources/fundamentals/authentication/api-reference#get-oauth-authenticate) または [GET oauth/authorize URL](/ja/resources/fundamentals/authentication/api-reference#get-oauth-authorize) を使ってあなたのアプリケーションを承認するために X に送られた後、ユーザーは `callback_url` にリダイレクトされず、代わりに X によって生成された約 7 桁の PIN コードと、その PIN をあなたのアプリケーションに入力するよう指示する画面が表示されます。

3. ユーザーはこの PIN をあなたのアプリケーションに入力し、アプリケーションはその PIN 番号を `oauth_verifier` として [POST oauth/access\_token](/ja/resources/fundamentals/authentication/api-reference#post-oauth-access-token) に渡し、`access_token` を取得します。

<Note>
  **Note:** PIN 番号は再利用できません。取得した `access_token` は、アプリケーションがユーザーに代わって行うリクエストに使用する必要があります。
</Note>
