PHP 拡張機能 - OAuth

伊谢尔伦
リリース: 2016-11-21 16:55:42
オリジナル
2089 人が閲覧しました

1. 概要とインストール

この拡張機能は、OAuth コンシューマーとプロバイダー間のバインディングを提供します。 OAuth は、HTTP 上に構築された認証プロトコルで、アプリケーションがユーザー名とパスワードを保存せずにデータに安全にアクセスできるようにします。

PECL/oauth には PHP 5.1 以降、および ext/hash および ext/pcre が必要です。

ビルド時に PECL/oauth が選択されている場合は、オプションで libcurl が必要です。 libcurl 構成を使用する場合は、HTTPS サポートを構築する必要があります。

この PECL 拡張機能のインストールに関する情報は、マニュアルの「PECL 拡張機能のインストール」というタイトルの章に記載されています。

2. 使用例

<?php
$req_url = &#39;https://fireeagle.yahooapis.com/oauth/request_token&#39;;
$authurl = &#39;https://fireeagle.yahoo.net/oauth/authorize&#39;;
$acc_url = &#39;https://fireeagle.yahooapis.com/oauth/access_token&#39;;
$api_url = &#39;https://fireeagle.yahooapis.com/api/0.1&#39;;
$conskey = &#39;your_consumer_key&#39;;
$conssec = &#39;your_consumer_secret&#39;;
session_start();
//  当 state=1 则下次请求应该包含一个 oauth_token 。
//  如果没有则返回 0
if(!isset($_GET[&#39;oauth_token&#39;]) && $_SESSION[&#39;state&#39;]==1) $_SESSION[&#39;state&#39;] = 0;
try {
    $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
    $oauth->enableDebug();
    if(!isset($_GET[&#39;oauth_token&#39;]) && !$_SESSION[&#39;state&#39;]) {
        $request_token_info = $oauth->getRequestToken($req_url);
        $_SESSION[&#39;secret&#39;] = $request_token_info[&#39;oauth_token_secret&#39;];
        $_SESSION[&#39;state&#39;] = 1;
        header(&#39;Location: &#39;.$authurl.&#39;?oauth_token=&#39;.$request_token_info[&#39;oauth_token&#39;]);
        exit;
    } else if($_SESSION[&#39;state&#39;]==1) {
        $oauth->setToken($_GET[&#39;oauth_token&#39;],$_SESSION[&#39;secret&#39;]);
        $access_token_info = $oauth->getAccessToken($acc_url);
        $_SESSION[&#39;state&#39;] = 2;
        $_SESSION[&#39;token&#39;] = $access_token_info[&#39;oauth_token&#39;];
        $_SESSION[&#39;secret&#39;] = $access_token_info[&#39;oauth_token_secret&#39;];
    }
    $oauth->setToken($_SESSION[&#39;token&#39;],$_SESSION[&#39;secret&#39;]);
    $oauth->fetch("$api_url/user.json");
    $json = json_decode($oauth->getLastResponse());
    print_r($json);
} catch(OAuthException $E) {
    print_r($E);
}
?>
ログイン後にコピー

3. 関連関数

oauth_get_sbs — 署名文字ベース文字列を生成

oauth_urlencode — URI を RFC 3986 仕様にエンコードする

4. 関連クラスとそのメンバー関数

OAuth クラス

OAuth ::__construct — 新しい OAuth オブジェクトを作成します

OAuth::__destruct — デストラクター

OAuth::disableDebug — 詳細なデバッグをオフにする

OAuth::disableRedirects — リダイレクトをオフにする

OAuth::disableSSLChecks — SSL チェックをオフにする

OAuth::enableDebug — 詳細デバッグを有効にする

OAuth::enableRedirects — リダイレクトを有効にする

OAuth::enableSSLChecks — SSL チェックを有効にする

OAuth::fetch — OAuth で保護されたリソースを取得する

OAuth::generateSignature — 署名を生成する

OAuth::getAccessToken — アクセストークンを取得する

OAuth::getCAPath — CA 情報を取得する

OAuth::getLastResponse — 最後の応答を取得する

OAuth::getLastResponseHeaders — 最後の応答を取得する ヘッダー情報

OAuth:: getLastResponseInfo — 最後の応答に関する HTTP 情報を取得します

OAuth::getRequestHeader — OAuth ヘッダー文字列署名を生成します

OAuth::getRequestToken — リクエスト トークンを取得します

OAuth::setAuthType — 承認タイプを設定します

OAuth::setCAPath — CA パスと情報を設定します

OAuth::setNonce — 後続のリクエストの nonce フラグを設定します

OAuth::setRequestEngine — ターゲットリクエストエンジンを設定します

OAuth::setRSACertificate — RSA 証明書を設定します

OAuth::setSSLChecks — 特定の SSL リクエスト チェックを調整します

OAuth::setTimestamp — タイムスタンプを設定します

OAuth::setToken — トークンとシークレットを設定します

OAuth::setVersion — OAuth バージョンを設定します

OAuthProvider クラス

OAuthProvider::addRequiredParameter — 必須を追加しますパラメータ

OAuthProvider::callconsumerHandler — ConsumerNonceHandler コールバック関数を呼び出す

OAuthProvider::callTimestampNonceHandler — timestampNonceHandler コールバック関数を呼び出す

OAuthProvider::calltokenHandler — tokenNonce ハンドラー コールバック関数を呼び出す

OAuthProvider::checkOAuthリクエスト — Oauth リクエスト

OAuthProvider:: をチェックします__construct — 新しい OAuthProvider オブジェクトを作成します

OAuthProvider::consumerHandler — ConsumerHandler ハンドルのコールバック関数を設定します

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

OAuthProvider::is2LeggedEndpoint — LeggedEndpoint

OAuthProvider: :isRequestTokenEndpoint — isRequestTokenEndpoint を設定します

OAuthProvider::removeRequiredParameter — 必須パラメーターを削除します

OAuthProvider::reportProblem — 問題を報告します

OAuthProvider::setParam — パラメーターを設定します

OAuthProvider::setRequestTokenPath — リクエスト トークン パスを設定します

OAuthProvider::timestampNonceHandler — タイムスタンプNonceHandlerハンドルを設定するコールバック関数

OAuthProvider::tokenHandler — tokenHandler ハンドルを設定するコールバック関数

OAuthException クラス

OAuthException — OAuthException クラス


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート