原理OAuth1.0 / 2.0開発プロセスのバージョンと仕組みを説明します

いくつかの時間前、OAuth1.0原則合意の下で言うには時間がかかり、彼の、誰にでも経験やデモの例を共有するためにQQのログインを達成するためにQQのOAuth1.0、OAuth2.0プロトコルによって検証今日は非常に忙しくしていることを置くことを望んでいたとOauth1.0の開発のための次の認証に関するQQ。ゴシップをテーマに直接以下、ポイントを言います。 1、OAuthの簡単な説明 のOAuth(オープン認証、オープン認証)は、ユーザーのアカウントとパスワードを知らなくても許可されたユーザ資源、第三者のために、安全でオープンかつシンプルなスタンダードの定義である、あなたが許可されたユーザに情報を得ることができ、これは安全です。(私は、このことを理解していなかった、それは問題ではありませんしませんでした単に好む、その後、以下を参照する) 2、OAuthの原則 oauth_developer_1 (フローチャート-上記の)図のステップ4点Iは、4つのステップが説明されています。最初に前:ユーザーなど第三者のサイトへのアクセス、:あなたはQQサイトのログを記録するために必要なもの;ステップ2:あなたはQQのログインをクリックして、第三者のウェブサイトの後に、たとえば、要求を接続します:あなたはログインをクリックした後、サードパーティあなたが成功したQQにログインしたときに、QQは、最初に認可するかどうか、プロンプトが表示されます:あなたは特権のようなあなたの情報にアクセスするには、サードパーティのウェブサイトを、許可する必要があります。第三ステップと、QQのプラットフォームにジャンプしますサイトは、あなたがログインするように求められますあなたの基本的なユーザー情報、またはその他のリソース情報へのWebパーティのアクセス、そしてあなたは、認可をクリックすることができます;ステップ4:承認後、サードパーティのWebは情報にアクセスするにはあなたのようなだけで、承認されたリソース、:あなたのQQの基本的な情報-アバター、ニックネーム、性別など。この原則は、(図は手作り、少し草)で示すと説明したことで、私たちは理解していない場合は、OAuthの作り方を学び、冗談ではないことができ、プロセスのOAuthこの原則の基本的な理解を持っていると信じています。(このステップの後、あなたが心配、上読んでいない、OAuth認証を実装する方法を正確に知ることはまだ不可能であるものを原則として、知っている) 、3のOAuth 1.0の認証プロセス 多くのプラットフォームは、OAuth2.0に従うことがあるがここでは、(OAuth2.0は、次のセクションで説明します)認証メカニズムOAuth1.0プロトコルに直接説明するのが、オープンOAuth1.0プラットフォームは、次のような、まだあります: 新浪微博 、QQ1 0.0プラットフォーム。OAuthの1.0認証には、3つの重要なURLを使用します:まず:トークンのURL、ゲイン不正トークンURLをリクエスト;第二:許可トークンのためのユーザ認証のURLは、URL、ユーザの要求を、サード:アクセストークントークンは、URLを取得使用して、アクセスURLをリクエスト、トップ3のURL認証プロセスが使用されている、以下のフロー図はそれを反映して、私がダウンして直接ゴールのOAuthスライドを説明しているし、解説: oauth_developer_2 最初のステップ:不正トークン認証プラットフォームにWebサイトのリクエストは、リクエストトークンURLは、最初のURLに以前言われました。ステップ2:ユーザー認証ページに移動し、ユーザーがログインするように要求し、承認されましたバック認可トークンを取得し、ユーザ認可URLで前記使用されている第2表面のURL;第三段階:許可トークン、認証プラットフォームへの要求アクセストークン(データトークン)によって、アクセスURLが使用要求先に述べた、第三のURLは、全体の認証プロセスが終わった後、最後のステップは、データトークンのパラメータであり、このステップに戻り得るようにユーザインタフェースを呼び出します 情報、不完全なカウント認証プロセス。(私は簡潔な認証プロセスは、あるように、私は理解していなかった場合は、メッセージを残してください、図示及び説明の仕方によって理解できると信じている) の呼び出しの4、配信QQのOAuth1.0の認証およびパラメータのURL OAuth1.0認証プロセスの原理とメカニズムの説教に接続され、この記事では、Notesのパラメータを渡し、QQ OAuth1.0の認証URLを呼び出すために説明に焦点を当てています。QQは、開発プラットフォームになりましたので、そこにあるので、いくつかのURL要求について言葉リターンパスパラメータ、およびない非常に詳細で綿密な説明、新しい2.0認証モードで、文書の開発を示して認定めったにOAuth1.0見つけられていませんあなたが私にメッセージを残すことができます何が問題なのです。1、ないQQLogin.aspx、トークンのための新しいページを作成すると、ユーザ認証ページへの一時的なジャンプを要求する権限を一時的にトークンを要求します。ここではリクエストトークンのURL(URLの一時的なトークン要求)を紹介している関連URLとパラメータは次のとおりです。http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token要求した後のURLをログに記録するユーザーを導くためにジャンプします。http:// OpenAPIを。 qzone.qq.com/oauth/qzoneoauth_authorizeのURLの最初の要求は、以下のパラメータが含まれていることが必要である:(赤、緑)は任意です
パラメータ 意味
oauth_consumer_key アプリケーションのQQのログインは、APPIDに割り当てられたサイト成功した後、
oauth_nonce ランダムな文字列、すべてのoauth_nonce利用int型。
oauth_timestamp (グーグル/ Baiduはそれを入手する方法については、異なる言語で午後12時00分00秒の現在時刻にUTC時刻からの秒数1970年1月1日、)Unixタイムスタンプ。サードパーティ製のサーバー時間とテンセントサーバーの時間差が5分以上にすることはできません。
oauth_version 1.0固定バージョン番号、
oauth_signature_method 署名方式、静止使用HMAC-SHA1。
oauth_signature 署名値は、送信パラメータの耐タンパ性を増加させます。生成された署名値を参照してください[QQ] oauth_signatureのログイン手順のシグニチャパラメータを
oauth_client_ip ユーザーのIPアドレス(オプション)、int型
戻り値のパラメータは次のとおりです。oauth_token(一時的なトークン)、oauth_token_secretパラメータ(一時鍵トークンがに対応する)は、第2のパスが必要なURLです。
パラメータ 意味
oauth_consumer_key APPIDサイトに割り当てられています。
oauth_token 前のステップ、得oauth_token
oauth_callback コールバックアドレス、ログイン名とサイト上のアドレスへの復帰を承認。
返されたパラメータは次のとおりです。
パラメータ 意味
oauth_token 認可トークン
OpenIDの 対応するユーザキーAPP、およびQQ番号と通信するには、OpenAPIのアクセスする必要があります。異なるアプリケーションでOpenIDの数が異なるQQ。 
oauth_signature 署名値。サイトは、このステップにOpenIDのリターンを使用している場合は、ルールによって署名値を生成し、ソースのopenidの性と信頼性を検証するための署名値と整合する必要があります。oauth_consumer_secret;ルールより署名値生成:HMAC-SHA1アルゴリズムを使用して、ソース文字列キー+ OpenIDのOpenIDのタイムスタンプは、(中間文字列「+」記号を追加しないでください)。
タイムスタンプ OpenIDのタイムスタンプ
oauth_vericode 認証コード。
2は、アクセストークン要求データ・トークンのステップは、我々はコールバックアドレスを書いた、そして成功したいくつかのパラメータを取得し、次はデータトークンを取得するには、まず、次のステップにこれらのパラメータを取ることです(トークンはデータのみを取得のみあなたは)ユーザー情報を取得するためのインタフェースを呼び出すことができます。アクセスのURL(アクセストークン取得要求URL)を要求します。http://openapi.qzone.qq.com/oauth/qzoneoauth_access_token URLリクエストパラメータは、次のものがあります。
パラメータ 意味
oauth_consumer_key APPIDのウェブサイトに割り当てられています
oauth_token トークンは、oauth_tokenステップのリターンを許可されています
oauth_nonce 乱数
oauth_timestamp Unixタイムスタンプ(グーグル/ Baiduののの入手方法については、異なる言語での現在の期間1970年1月1日まで00:00:00からの秒数)
oauth_version 1.0固定バージョン番号、
oauth_signature_method 固定されたHMAC-SHA1を使用して署名方式、
oauth_signature 署名値は、送信パラメータの耐タンパ性を増加させます。生成された署名値を参照してください[QQ] oauth_signatureのログイン手順のシグニチャパラメータを
oauth_vericode 認証コード、oauth_vericodeステップのリターン
oauth_client_ip ユーザーのIPアドレス(オプション)、int型
次のように返されたパラメータは次のとおりです。
パラメータ 意味
oauth_token access_tokenは、アクセスを持っています
oauth_token_secret access_tokenはキー
OpenIDの 最初のステップと、このステップではOpenIDに戻ります。、このステップのOpenIDが返さ使用し、より安全な
タイムスタンプ OpenIDのタイムスタンプ
oauth_signature 署名値のOpenID用
ます。http:3は、アクセストークン(トークンデータ)を呼び出すAPIインタフェースを介して、許可されたユーザーは、リソースの要求URLを取得するリクエストパラメータ(デフォルトはインタフェースget_user_infoここに書かれている)//openapi.qzone.qq.com/user/get_user_info:
パラメータ 意味
oauth_consumer_key APPIDのウェブサイトに割り当てられています
oauth_token oauth_tokenの前に戻ります
oauth_nonce 乱数、int型
oauth_timestamp (グーグル/ Baiduはそれを入手する方法については、異なる言語で午後12時00分00秒の現在時刻にUTC時刻からの秒数1970年1月1日、)Unixタイムスタンプ。
oauth_version バージョン番号は、1.0を固定しました
oauth_signature_method 署名方法は、HMAC-SHA1を使用して固定します
oauth_signature 署名値は、送信パラメータの耐タンパ性を増加させます。生成された署名値を参照してください[QQ] oauth_signatureのログイン手順のシグニチャパラメータを
OpenIDの 前のOpenIDが返されます。
oauth_client_ip ユーザーのIPアドレス(オプション)、int型
注意:ブルーは、要求されたURL(4)、必要なパラメータのための赤、緑良いため、オプションのパラメータである、上記全体QQのOAuth1.0の認証プロセスは、URLパラメータを要求し、指示を返すあるOAuth1.0認定には、特に大規模なパラメータの数だけでなく、HMAC-SHA1の暗号化、署名および他の操作を通じて、特に厄介な、面倒な、または推奨されるすべてのOAuth2.0認証プロトコルインタフェースの開発の最良を見つけるでしょう。 認証プロセス5のOAuth2.0を OAuth2.0のプロセスフローでは、次の4つのステップに分け:
図1に示すように、認証コードのコードを取得し
2、アクセストークンを取得
3、アクセストークンは、getのOpenID
4、およびOpenIDのAPIを呼び出すことによってアクセストークンは、上記ユーザ認可情報を取得し、私がなさスライドのフローチャートである以下反映する流れ図で、約4つのステッププロセスである(最後に、添付されダウンここで説明するのは、誰もが共有するために作られたOAuthのスライド)、直接ゴール:
oauth2.0_developer_pic 最初のステップ:要求ユーザのURLを示すアドレスに直接ジャンプする、すべての許可されたユーザの第一に、ユーザーがログインするように要求され、かつ唯一の認証コードを与えることを承認されたリソースを与え、ここでのコードは、安全のために10分間のみ有効であることに注意してで、このステップは、アクセストークンを要求することで、認証コードを取得する:第2のステップと、一時的なトークンを取得するために州のOAuth1.0ステップ、およびまた有効な制御、より多くのより1.0認証を簡素化し、より安全に関して、検討してください要求アクセスURLは、トークンを与えるために生成されたデータを示す図である。第三段階:アクセストークン要求のOpenIDは、OpenIDの一意このプラットフォーム上でユーザーを識別する、情報URLイラスト要求を介して要求し、次いで得OpenIDの第4工程:第工程で得られたトークンデータ、第三のステップAPIは、ユーザ認可情報リソースを取得、要求、OpenIDのおよび関連し得ます。コースウェアのシェア(私は簡潔好き、OAuth2.0の認証プロセスは、このような場合、我々は理解していなかった場合は、メッセージを残してください、例示と説明の仕方によって理解できると信じています): ダウンロード  (これは切り替えます。http://blog.unvsを。 CN)

ます。https://my.oschina.net/766/blog/210863で再現

おすすめ

転載: blog.csdn.net/weixin_33937778/article/details/91547698