目次
php oauthクライアントとサーバーのプロセスと実装
紹介:
クライアントとサーバーの実装:
ホームページ バックエンド開発 PHPチュートリアル php oauth v1.0 クライアントとサーバーのプロセスと実装の詳細な説明_PHP チュートリアル

php oauth v1.0 クライアントとサーバーのプロセスと実装の詳細な説明_PHP チュートリアル

Jul 13, 2016 am 10:37 AM
oauth 詳しい説明

php oauthクライアントとサーバーのプロセスと実装

紹介:

1. 主にサードパーティがユーザーリソースを取得するために使用され、通常はユーザー情報を取得するためのサードパーティのログイン認証に使用されます。

2. RFC-5849 プロトコルです (ソフトウェアやサービスではありません)

3. 認証 + 認可


フローチャート:

各プラットフォームのフローチャート163happy.com新浪微博

クライアントとサーバーの実装:

1. フローチャートから、次の手順が必要であることがわかります。
0. ユーザーの Key と Secret を取得します (フローチャートの外) [server/create_consumer.php]
1. リクエストトークンとリクエストシークレットを取得する [client/get_request_token.php] 2. リクエスト トークンとリクエスト シークレットを返す [server/request_token.php] 3. 認証ページをリダイレクトします——" 【server/authorize.php】 4. ユーザー認証コールバック ——| 5. アクセストークンとアクセスシークレットを取得する [client/get_access_token.php] 6. アクセス トークンとアクセス シークレットを返す [server/access_token.php] 7. APIの呼び出し(フローチャート外) [client/get_api.php] 8. APIで取得したデータを返却(フローチャート外) [server/api.php]

コードのディレクトリ構造


2. コードの実装プロセス

0:server/create_consumer.phpクライアントはコンシューマキーとコンシューマシークレットを生成します

リーリー

OAuthProvider: OAuthプロバイダークラス


generateToken: ランダムなトークンを生成します

generateToken 関数には パフォーマンスに注意してください 2 番目のパラメーター dev/random と dev/urandom のパフォーマンスの違いに注意してください。ここでは詳細な説明はありません。ご自身のプロジェクトに合わせて調整してください。

具体的なパフォーマンス情報については、/dev/random を参照してください。Mcrypt の応答が遅い理由の 1 つ


sha1: HMAC-SHA1 アルゴリズムを使用して署名を生成します

Baidu: OAuth リクエストでは、HMAC-SHA1 または MD5 アルゴリズムを使用して署名を生成できます。


Sina Weibo: すべての OAuth リクエストは HMAC-SHA1 アルゴリズムを使用して署名を生成します


Kaixin.com: 署名メソッド、現在は HMAC-SHA1 のみをサポートしています


実行結果


1: client/get_request_token.php はリクエスト トークンとリクエスト シークレットを取得します

れーれー


上記のコードを渡します

getRequestToken($request_url . '?callback_url=' . $callback_url . '&scope=all') はサーバーコードを実行します

2:server/request_token.php request_token を返す

リーリー


コード 1 in 2 を通じて $oauth_token、$oauth_token_secret、および oauth_callback_confirmed を取得します

3にリダイレクト

3:server/authorize.php

認証の検証 これにより、ユーザーはコールバックする前にアカウントとパスワードを入力する必要があります。コードの最も基本的な実装では、ユーザー間のデフォルトの認証を省略しました

れーれー

ここでの検証は単純です。デフォルトでは、サードパーティのコールバック アドレスは承認され、直接取得されます (通常の状況では、ユーザーが承認した後、サーバーはデータベースを通じてサードパーティのコールバック アドレスを取得し、oauth_token を承認します。 、oauth_token は常に未承認状態です)

上記のコードは、コールバック アドレスを通じて承認された request_token (oauth_token) を 5 に渡します (4 人のユーザーが自分自身を承認する場合、承認検証としてここにフォーム送信を追加できます)

5: client/get_access_token.php がアクセストークンを取得します

れーれー

$tokenInfo = $OAuth->getAccessToken($access_url); 要求されたメソッド 6


6:server/access_token.php はアクセストークンを返します

れーれー



2:get_request_token~6:server/access_token.php処理 request_tokenの取得——》request_tokenの返却——》ユーザ認可検証authorize——》検証成功コールバック——》アクセストークンの取得——>アクセストークンの返却
実行結果は以下の通りです
get_access_token にリダイレクトされ、access_token と access_secret を取得しました
現在、クライアント (サードパーティ プラットフォーム) は次のデータを取得しています。 $consumer_key: 2b4e141bf09beecdeb3479cd106038100febf399
$consumer_secret: fab40ca819c25d5fb4abf3e7cae8da5c25b67d05

$request_token:?プログラムの中間データ (このデータは通常、時間に敏感です) $request_secret:?プログラムの中間データ (このデータは通常、時間に敏感です)
$access_token: 12b6f8f6d6930e0e4d1d024c0f520527d0b84d19 (通常、このデータの有効性は無制限です) $access_secret: c77463aff2c1abbd670cfb03df4bb4247910cb78 (通常、このデータの有効性は無制限です)


次に、これらのパラメータを使用して 7:get_api.php から 8:api.php を実行します。
7: client/get_api.php は API ユーザーデータを取得します

れーれー



8:server/api.php はユーザーデータを返します

れーれー

演算結果
ダウンロード php oauth v1.0 クライアントとサーバーのプロセスと実装の詳細な説明_PHP チュートリアル

注: この (上記) コードを実行するには、php oauth v1.0 が設定され、php_curl が有効になっている必要があります


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/735878.html技術記事 PHP oauth クライアントとサーバーのプロセスと実装の概要: 1. 主にサードパーティがユーザー リソースを取得するために使用され、一般的にはユーザー情報を取得するためにサードパーティのログイン認証に使用されます 2. これはプロトコル RFC-5849 (...
)
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++のmode関数の詳しい解説 C++のmode関数の詳しい解説 Nov 18, 2023 pm 03:08 PM

C++ のモード関数の詳細な説明 統計において、モードとは、一連のデータ内で最も頻繁に現れる値を指します。 C++ 言語では、モード関数を記述することによって、任意のデータセット内のモードを見つけることができます。モード関数はさまざまな方法で実装できます。一般的に使用される 2 つの方法を以下で詳しく紹介します。 1 つ目の方法は、ハッシュ テーブルを使用して各数値の出現回数をカウントすることです。まず、各数値をキー、出現回数を値とするハッシュ テーブルを定義する必要があります。次に、特定のデータセットに対して次を実行します。

Win11での管理者権限の取得について詳しく解説 Win11での管理者権限の取得について詳しく解説 Mar 08, 2024 pm 03:06 PM

Windows オペレーティング システムは世界で最も人気のあるオペレーティング システムの 1 つであり、その新バージョン Win11 が大きな注目を集めています。 Win11 システムでは、管理者権限の取得は重要な操作であり、管理者権限を取得すると、ユーザーはシステム上でより多くの操作や設定を実行できるようになります。この記事では、Win11システムで管理者権限を取得する方法と、権限を効果的に管理する方法を詳しく紹介します。 Win11 システムでは、管理者権限はローカル管理者とドメイン管理者の 2 種類に分かれています。ローカル管理者はローカル コンピュータに対する完全な管理権限を持っています

Oracle SQLの除算演算の詳細説明 Oracle SQLの除算演算の詳細説明 Mar 10, 2024 am 09:51 AM

OracleSQL の除算演算の詳細な説明 OracleSQL では、除算演算は一般的かつ重要な数学演算であり、2 つの数値を除算した結果を計算するために使用されます。除算はデータベース問合せでよく使用されるため、OracleSQL での除算演算とその使用法を理解することは、データベース開発者にとって重要なスキルの 1 つです。この記事では、OracleSQL の除算演算に関する関連知識を詳細に説明し、読者の参考となる具体的なコード例を示します。 1. OracleSQL での除算演算

C++の剰余関数の詳しい解説 C++の剰余関数の詳しい解説 Nov 18, 2023 pm 02:41 PM

C++ の剰余関数の詳しい説明 C++ では、剰余演算子 (%) を使用して、2 つの数値を除算した余りを計算します。これは、オペランドが任意の整数型 (char、short、int、long など) または浮動小数点数型 (float、double など) になる二項演算子です。剰余演算子は、被除数と同じ符号の結果を返します。たとえば、整数の剰余演算の場合、次のコードを使用して実装できます。

PHPモジュロ演算子の役割と使い方を詳しく解説 PHPモジュロ演算子の役割と使い方を詳しく解説 Mar 19, 2024 pm 04:33 PM

PHP のモジュロ演算子 (%) は、2 つの数値を除算した余りを取得するために使用されます。この記事では、モジュロ演算子の役割と使用法について詳しく説明し、読者の理解を深めるために具体的なコード例を示します。 1. モジュロ演算子の役割 数学では、整数を別の整数で割ると、商と余りが得られます。たとえば、10 を 3 で割ると、商は 3 になり、余りは 1 になります。モジュロ演算子は、この剰余を取得するために使用されます。 2. モジュロ演算子の使用法 PHP では、% 記号を使用してモジュロを表します。

Linuxシステムコールsystem()関数の詳細説明 Linuxシステムコールsystem()関数の詳細説明 Feb 22, 2024 pm 08:21 PM

Linux システム コール system() 関数の詳細説明 システム コールは、Linux オペレーティング システムの非常に重要な部分であり、システム カーネルと対話する方法を提供します。その中でも、system()関数はよく使われるシステムコール関数の一つです。この記事では、system() 関数の使用法を詳しく紹介し、対応するコード例を示します。システム コールの基本概念 システム コールは、ユーザー プログラムがオペレーティング システム カーネルと対話する方法です。ユーザープログラムはシステムコール関数を呼び出してオペレーティングシステムを要求します。

Linuxのcurlコマンドの詳しい説明 Linuxのcurlコマンドの詳しい説明 Feb 21, 2024 pm 10:33 PM

Linuxのcurlコマンドの詳細な説明 要約:curlは、サーバーとのデータ通信に使用される強力なコマンドラインツールです。この記事では、curl コマンドの基本的な使用法を紹介し、読者がコマンドをよりよく理解して適用できるように実際のコード例を示します。 1.カールとは何ですか? curl は、さまざまなネットワーク要求を送受信するために使用されるコマンド ライン ツールです。 HTTP、FTP、TELNETなどの複数のプロトコルをサポートし、ファイルアップロード、ファイルダウンロード、データ送信、プロキシなどの豊富な機能を提供します。

Promise.resolve() について詳しく見る Promise.resolve() について詳しく見る Feb 18, 2024 pm 07:13 PM

Promise.resolve() の詳細な説明には、特定のコード例が必要です。Promise は、非同期操作を処理するための JavaScript のメカニズムです。実際の開発では、順番に実行する必要があるいくつかの非同期タスクを処理する必要があることがよくあり、満たされた Promise オブジェクトを返すために Promise.resolve() メソッドが使用されます。 Promise.resolve() は Promise クラスの静的メソッドであり、

See all articles