認可メカニズム


Weibo の投稿やフォローなど、Weibo オープン インターフェイスを呼び出すには、ユーザー ID 認証が必要です。現在、Weibo オープン プラットフォームでは、ユーザー ID 認証に主に OAuth2.0 が使用されています。さらに、開発者が独自のアプリケーションの開発とテストを容易にするために、Basic Auth の ID 認証方法も提供されていますが、Basic Auth は、アプリケーションが属する開発者がインターフェイスを呼び出す場合にのみ適しています。


クイックインデックス

  • 承認の有効期間
  • 承認の有効期間の延長


OAuth2.0 の概要

OAuth2.0 1.0 との比較、認可検証プロセス全体は、よりシンプルかつ安全であり、将来的に最も重要なユーザー認証および認可方法でもあります。


OAuth2.0 プロトコルの認可プロセスに関しては、以下のフローチャートを参照してください。クライアントはサードパーティのアプリケーションを指し、リソース所有者はユーザーを指し、認可サーバーは当社の認可を指します。サーバー、リソース サーバーは API サーバーです。



開発者は、まず OAuth2.0 のインターフェイス ドキュメントを参照して、OAuth2 に慣れることができます。 0 インターフェースとパラメータの意味を説明し、アプリケーションのシナリオに応じて OAuth2.0 の使用方法を説明します。


#インターフェースドキュメント

##インターフェース##OAuth2/authorizeユーザー認証トークンをリクエスト認可されたアクセス トークンを取得OAuth2/get_oauth2_tokenOAuth1.0のアクセストークンをOAuth2.0のアクセストークンに変更します


#注意事項

    • 1. OAuth2.0 認証にはアプリケーションは必要なく、任意のアプリケーションを使用できます。開発者がより長い認可有効期間を必要とする場合は、このドキュメントの認可有効期間のセクションを参照してください。
    • 2. オフサイト Web アプリケーションまたはクライアント アプリケーションの場合、セキュリティ上の理由から、OAuth2.0 を使用するにはプラットフォーム Web サイトの redirect_url (承認コールバック ページ) を入力する必要があります。アドレス:
    • 「マイ アプリケーション > アプリケーション情報 > 詳細情報」、クライアントには、デフォルトのコールバック ページ アドレスも提供されます。詳細については、認証ページの機能セクションを参照してください。


#認可インターフェース

OAuth2_intro.png

新しいバージョンの認証ページでは、以前のページの情報要素が多すぎてユーザーに干渉が生じていた問題が変更され、ログインと認証の 2 つの動作が分離されました。ログインと認証のプロセスにより、将来さらに多くの機能を使用できるスペースも提供されます。


現在、最も完全な認証は、ログイン、通常の認証、高度な認証 (SCOPE) の 3 つのステップに分かれています。ただし、これらの 3 つのステップは必須ではありません。ユーザーの Weibo にログインすると、ページは自動的に通常の認証ページにジャンプします。「高度な認証」も必要ありません。開発者が SCOPE 権限を申請しない場合、システムは自動的にこの手順をスキップして、アプリケーションをコールバックします。グレースケール テストでは、高度な認証が適切に使用されている限り、開発者は操作の増加によるページ チャーン レートを心配する必要はなく、逆に、明確な認証エクスペリエンスがユーザーの信頼をより確実に獲得できることがわかりました。


同時に、権限項目も整理され、これまでの通常の権限は基本的なサービスとして利用され、ユーザーが意識することはなくなり、ユーザーのプライバシーに関わる権限は機密化されます。承認時に項目ごとにキャンセルする権利があり、プライバシー管理がさらに強化されます。



oauth2v3.png


#アプリケーション シナリオ

開発者は、それぞれのアプリケーション シナリオに基づいて、該当する OAuth2.0 認証プロセスを選択する必要があります。


# #1. PC および Web Web サイトの場合は、Web Web サイトの認証コード (Authorization Code)
  • 2. モバイル アプリケーションは、Weibo クライアントを呼び出すことで公式モバイル SDK を直接使用できます (Weibo はインストールされていません)。 H5 認証ページを呼び出して)
    • 3. H5 ライト アプリケーションを認証するには、ライト アプリケーション開発ガイドを参照してください
##Web サイトの認証


oAuth2_02.gif


1. 認証が必要なユーザーを次のアドレスに誘導します。 :

URL

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

2. ユーザーが承認に同意すると、ページは YOUR_REGISTERED_REDIRECT_URI/?code=CODE

3 にジャンプします。アクセス トークンの交換

##URL
##https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

## ここで、 client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET は、基本的な方法を使用してヘッダーに追加でき、戻り値は
JSON# です。 ##
{
    "access_token": "SlAV32hkKG",
    "remind_in": 3600,
    "expires_in": 3600
}

4. 取得したアクセストークンを使用してAPIを呼び出します

##モバイルアプリケーションの認可


#モバイル アプリケーション (主にモバイル ネイティブ アプリ) の場合は、SSO 認証をサポートする公式に提供された SDK を使用することをお勧めします。これにより、認証プロセスの開発が大幅に簡素化されます。そして開発コストを削減します。

sdk72207.png モバイル アプリケーションの場合は、open.weibo.cn の認証インターフェイスを使用してください。ブログやコメントなどの通常のリソース API は引き続き weibo.com インターフェイスを呼び出します。

#SDK アクセス プロセス

iOS SDK ダウンロード

Android SDK ダウンロード

  • 認証有効期間
Weibo オープン プラットフォームの OAuth2.0 認証メカニズムに基づいて、サードパーティはaccess_token には有効期限があり、通常は 30 日です。


#認可レベルと OAuth2.0 access_token 有効期間の対応表:

##認可レベル


テスト

通常

説明
##OAuth2/access_token
OAuth2/get_token_info
認可情報クエリインターフェースOAuth2/revokeoauth2
認可リサイクルインターフェイス
認証有効期間


注:

  • 1. レビューされていないアプリケーションのみがテスト レベルです。
  • 2. アプリケーションの開発者がアプリケーションを認可した場合、有効期間は 5 年間です。


「マイ アプリケーション > インターフェイス管理 > 認証メカニズム」 で現在のアプリケーションの認証レベルを照会できます。ここで認証有効期間の延長を申請することもできます。


開発者は、access_token の有効時間を 2 つの方法で計算できます:

  • 1. ユーザーがユーザーを承認すると、oauth2/access_token インターフェイスが使用されます。 expires_in値は access_token のライフ サイクルです;
  • 2. 上記の対応する表から、アプリケーションに対応する認可有効期間を見つけます (有効期限 = ユーザー認可時間 認可有効期間)。 period;


サードパーティ製の開発アプリケーションにはある程度の堅牢性が必要であり、インターフェース呼び出し時にインターフェースの戻り値を判定し、ユーザーのaccess_tokenが不正な場合、ユーザーに再認証を促す必要があります。


失敗の理由は次のとおりです:

  • 1. ユーザーがアプリケーションの承認をキャンセルしました;
  • 2. access_token は自然に期限切れになります。
  • 3. ユーザーがパスワードを変更し、アプリケーションの認証を凍結しました;
  • 4. Weibo はユーザー アカウントが盗まれたことを発見し、アプリケーションのユーザーの認証を凍結しました;


オーソリ有効期間の延長

オーソリ有効期間内の再オーソリ

#ユーザーが認証有効期間内の場合、認証のために認証ページを再度開きます (この時点でユーザーが Weibo にログインしている場合、このページが点滅します)。その後、Weibo は自動的にライフ サイクルを延長します。開発者用の access_token の値。開発者は、新しい承認後に access_token の値を維持するように求められます。


リフレッシュ トークンを使用して承認の有効期間を更新します

さらに、リフレッシュ トークンを使用して承認の有効期間を更新して延長する方法も提供します。認証は有効ですが、次の点に注意してください。 公式 Weibo モバイル SDK を使用するモバイル アプリケーションのみが、SDK メソッドからリフレッシュ トークンを取得できます。


リフレッシュ トークンはアクセス許可の一種です。アクセス トークンを取得すると、認証サーバーは対応するリフレッシュ トークンを返します。アクセス トークンの有効期限が切れた場合は、リフレッシュ トークンを使用して次のことを行うことができます。リフレッシュしてください。


リフレッシュ トークンにも有効期間があり、リフレッシュ トークンの有効期間は現在 30 日間で、有効期間内であればいつでも更新できます。


リフレッシュ トークンを更新して取得した新しいアクセス トークンの有効期間は、元の有効期間と同じです。つまり、元のアクセス トークンの有効期間は 30 日であり、新しく取得したアクセス トークンの有効期間は 30 日です。アクセストークンも30日です。


簡単に言うと、Weibo Mobile SDK を使用するモバイル アプリケーションの場合、認証 (アクセス トークン) は 30 日間有効で、30 日以内に更新できます。更新から 30 日間有効です。時間。


oAuth2_05.gif


1. いつWeibo の公式モバイル SDK のモバイル アプリケーションを使用すると、承認は access_token と追加のfresh_token を返します:

JSON
{
    "access_token": "SlAV32hkKG",
    "remind_in": 3600,
    "expires_in": 3600
    "refresh_token": "QXBK19xm62"
}
2、当你调

API インターフェイスを使用してアクセス トークンを返す場合有効期限が切れた場合は、oauth2/access_token を呼び出して、refresh_token を渡すことができます:


URL
https://api .weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=refresh_token&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&refresh_token=…

#戻り値


#JSON

#{
"access_token": "SlAV32hkKG",
"expires_in": 3600
}

3. 新しく取得したアクセス トークンを使用して API


OAuth2.0 を使用して API を呼び出す

OAuth2.0 を使用して API インターフェイスを呼び出すには 2 つの方法があります:

1. パラメータを直接使用し、パラメータ名 access_token

URL
を渡します。
https://api.weibo.com/2/statuses/public_timeline.json?access_token=abcd
##2. ヘッダーに Authorization:OAuth2 スペース abcd を追加する形式で、ヘッダーに渡します。ここでの abcd はアクセス トークンの値とみなされ、他のインターフェイス パラメーターは通常どおりに渡すことができます。

注: すべての Weibo オープン プラットフォーム インターフェイスは weibo.com ドメインに展開され、モバイル認証インターフェイスのみが open.weibo.cn ドメインに存在します。


#承認中のその他の機能

スコープ

# #スコープ「OAuth2.0認証ページは新バージョンで提供される機能です。スコープを通じて、プラットフォームはより多くのWeiboコア機能を開発者に公開すると同時に、ユーザーのプライバシー保護を強化し、ユーザーエクスペリエンスを向上させます。ユーザーは新しいOAuth2.0で認証できます。」ページはアプリケーションに与えられる機能を選択する権利を有します。

#スコープ オープン インターフェイス ドキュメント: インターフェイス ドキュメント


クライアントのデフォルト コールバック ページ

#通常、モバイル ネイティブ アプリにはサーバー コールバック アドレスがありません。アプリケーション コンソールの承認コールバック ページで、プラットフォームによって提供されるデフォルトのコールバック ページに入力できます。このページはユーザーには表示されず、取得するためにのみ使用されます。アクセストークン。

OAuth2.0 クライアントのデフォルト コールバック ページ: https://api.weibo.com/oauth2/default.html


##強制ログイン


認証ページは、デフォルトで現在のユーザーの Weibo ログイン ステータスを読み取ります。ユーザーに再度ログインしてもらいたい場合は、呼び出し時にパラメータを渡してください。認証インターフェイス:forcelogin=true、デフォルトでこのパラメータを入力しないことは、forcelogin=false と同等です。

#承認コールバック ページのキャンセル


開発者は、承認コールバック ページのキャンセルを次の場所に入力できます。アプリケーション コンソール ユーザーがアプリケーションの認証をキャンセルすると、オープン プラットフォームは入力したアドレスにコールバックします。そして、次のパラメータを渡します。source: アプリケーション appkey、uid: 承認をキャンセルするユーザー、auth_end: 承認をキャンセルする時間


OAuth2.0 関連リソース

次の SDK には、OAuth2.0 と新しいバージョンの API インターフェイスが含まれています

1日30日
#Android SDK をダウンロードiOS SDK のダウンロードWP7 SDK のダウンロードPHP SDK のダウンロード (SAE によって管理)Java SDK のダウンロード Python SDK のダウンロードFlash SDK のダウンロードJavaScript SDK のダウンロードC# SDK のダウンロード




モバイル開発 SDK ドキュメント

##Android SDK ドキュメントiOS SDK ドキュメントWP7 SDK ドキュメント


その他の参考資料

OAuth は国際的に認められた認証方式であり、OAuth2.0 の公式技術説明は http:/ にあります。 / oauth.net/2/


まだ Oauth1.0 を使用している場合は、関連ドキュメントを参照してください。


OAuth2.0 エラー コード

Weibo OAuth2.0 実装では、認可サーバーが検証認可リクエストを受信すると、このリクエストのリクエスト ヘッダーとリクエスト パラメータは、OAuth2.0 プロトコルに従ってチェックされます。リクエストが不正であるか検証が失敗した場合、認可サーバーは次のパラメータを含む対応するエラー メッセージを返します:

  • error: エラー コード
  • error_code: エラーの内部番号
  • error_description: エラーの説明
  • error_url: 人間が判読できる Web ページ URIエラーに関する情報を含む。追加のエラー関連情報をエンド ユーザーに提供するために使用されます。


エラー情報を返すには 2 つの方法があります:

1. 承認を要求するときのエンドポイント: https://api.weibo.com/2/oauth2/authorizeエラーが発生した場合の戻り方法は次のとおりです: redirect_uri にジャンプし、uri 内で クエリ パラメータには、エラーの説明情報が付属します。

2. アクセス トークンの終了リクエスト時にエラーが発生します: https://api.weibo.com/oauth2/access_token. 戻りメソッド: JSON テキストを返します。例:


#JSON
##{
"error": "unsupported_response_type",
"error_code": 21329,
"error_description": "Unsupported ResponseType."
}

OAuth2.0 エラー エラー コード応答内の定義は次の表に示すとおりです。


QQ截图20170210143858.png

##