QQログインOAuth2.0処理フロー


QQ ログイン OAuth2.0 プロセスには主に次の 3 つのステップが含まれます:
1. access_token を取得する;
2. access_token に基づいてユーザー ID に対応する openid を取得する;
3. 呼び出しaccess_token と openid OpenAPI に基づいて、ユーザーが承認したリソース (ユーザー情報、ログ、フォト アルバム、トークなど) へのアクセスを要求または変更します。

QQ ログインでは、Web サイトに素早くアクセスできるように、JS SDK を提供しており、そのコードを Web ページに貼り付けることで QQ ログイン機能を実現します。
モバイル アプリケーションへの素早いアクセスを容易にするために、QQ ログインは Android SDK と IOS SDK を提供します。アプリケーションは少量のコードを変更するだけで QQ ログイン機能をすぐに実装できます。

#Step1: access_token の取得

QQ ログイン OAuth2.0 は Web サイト、モバイル アプリケーション、デスクトップ アプリケーションに提供されています現在、さまざまなログイン検証および認可プロセスで、アクセス トークンを取得する次の 2 つの方法が提供されています:

1. サーバー側モード

は、OAuth 公式ドキュメントに記載されている認可コード モードであり、次の用途に適しています。 Web サーバーによってアクセスされるアプリケーションからアクセス トークンを取得する必要があるユーザー。

2. クライアント側モード
OAuth 公式ドキュメントに記載されている Implicit モードで、クライアント経由のアクセスに適しています。

上記 2 つのモードは、access_token の取得時のみ異なり、その後の openid の取得方法と API の呼び出し方法は同じです。
ログインに成功すると、開発者はログイン情報を表すアクセス トークンを取得します。このパラメータは、ユーザー認証情報にアクセスするために使用されます。
アクセス トークンは、ユーザーがログインするたびに生成されます。有効期限のデフォルトは 3 か月で、ユーザーが再度ログインすると自動的に更新されます。

#ステップ 2: access_token に基づいてユーザー ID に対応する openid を取得します。

リクエスト アドレス: PC Web サイト: https://graph.qq.com/oauth2.0/me
WAP Web サイト: https://graph.z.qq.com/moc2/me

リクエストメソッド: GET

リクエストパラメータ:

リクエストには以下の内容を含めてください。パラメータ:


QQ截图20170209150321.png

返却手順:

PC Web サイトにアクセスすると、ユーザーの OpenID が取得され、返却パッケージが返されます。次のように:

callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} );

WAP Web サイトにアクセスすると、次の文字列が返されます:

client_id=100222222&openid=1704*********************** **878C


openid は、この Web サイト上のユーザーの ID に対応する唯一の識別子です。Web サイトは、次回ログインするときにユーザーの ID を識別するためにこの ID を保存したり、Web サイト上のユーザーの元のアカウントにバインドしたりできます。 。

エラー コードの説明:

インターフェイス呼び出しでエラーが発生すると、コード フィールドとメッセージ フィールドが URL パラメーター ペアの形式で返されます。値の部分は URL エンコード (UTF-8) されます。

PC Web サイトにアクセスした場合のエラー コードの詳細については、「100000-100031: PC Web サイトにアクセスした場合の公開リターン コード」を参照してください。

WAP Web サイトにアクセスするときは、エラー コードの詳細を参照してください。 9000-9999: アクセス トークンに基づいて、対応するユーザー ID の openid を取得するときにエラーが発生しました。

ステップ 3: OpenAPI を呼び出してアクセスを要求するか、ユーザーが承認したリソースを変更する

OpenAPI を呼び出すときは、次の 3 つの値を使用する必要があります:
YOUR_APP_ID: QQ への申請が成功した後に割り当てられます。ログイン appid (222222 など)
YOUR_ACCESS_TOKEN: ステップ 1 で取得したアクセス トークンの有効期限が切れてはいけません (E0632E6CE12AC709999 など)
YOUR_OPENID: ステップ 2 で取得した openid、ユーザーの一意の識別子 (B9DD537D1C5C98A9999 など)