首頁 > 後端開發 > php教程 > PHP擴充—OAuth

PHP擴充—OAuth

伊谢尔伦
發布: 2016-11-21 16:55:42
原創
2096 人瀏覽過

一、概述與安裝

此擴充功能提供 OAuth 消費方和提供者之間的綁定。 OAuth 是一種建立在 HTTP 之上的授權協議,用於允許應用程式安全存取資料而無需儲存使用者名稱和密碼。

PECL/oauth 需要 PHP 5.1 或更高版本,以及 ext/hash 和 ext/pcre 。

如果在建置時選擇 PECL/oauth 則可選擇性地需要 libcurl 。如果使用 libcurl 配置,則必須建置 HTTPS 支援。

安裝此 PECL 擴充相關的資訊可在手冊中標題為 PECL 擴充的安裝章節中找到。

二、使用範例

<?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);
}
?>
登入後複製

三、相關函數

二、使用範例

rrreee

三、相關函數

oauth_get_sbs — 產生一個簽章字元串連

oauth_urlencode — 將URI 編碼為RFC 3986 規格。 OAuth::__construct — 新建一個OAuth 物件

OAuth::__destruct — 析構函數

OAuth::disableDebug — 關閉詳細的調試

OAuth::disableRedirects  關閉— 關閉詳細的調試

OAuth::disableRedirects  關閉

OAuth::enableDebug — 啟用詳細除錯

OAuth::enableRedirects — 啟用重定向

OAuth::enableSSLChecks — 啟用SSL 檢視

OA::enableSSLChecks — — 產生一個簽章

OAuth::getAccessToken — 取得存取權杖

OAuth::getCAPath — 取得CA 資訊

OAuth::getLastResponse — 取得最後一次的回應

OAuth::getLastResponse — 取得最後一次的回應

頭資訊

OAuth::getLastResponseInfo — 取得最後一次回應的HTTP 資訊

OAuth::getRequestHeader — 產生OAuth 頭資訊字串簽章

OAuth::getRequestToken — 產生OAuth 頭資訊字串簽章

OAuth::getRequestToken 設定授權類型

OAuth::setCAPath — 設定CA 路徑和資訊

OAuth::setNonce — 設定為後續請求提供現時標誌

OAuth::setRequestEngine::RSA— 設定目標請求引擎

OAuth::setSSLChecks — 調整特定的SSL請求檢查

OAuth::setTimestamp — 設定時間戳

OAuth::setToken — 設定令牌和secret

OA::setVersionVersionAage OAuthProvider::addRequiredParameter — 新增必要的參數

OAuthProvider::callconsumerHandler — 呼叫consumerNonceHandler 回呼函數

OAuthProvider::callTimestampNoncedler kenNonceHandler 回呼函數

OAuthProvider::checkOAuthRequest — 檢查一個oauth 請求

OAuthProvider::__construct — 新建一個OAuthProvider 物件

OAuthProvider::consumerHandler — 設定consumerHandler 句柄回調函數

2LeggedEndpoint

OAuthProvider: :isRequestTokenEndpoint — 設定isRequestTokenEndpoint

OAuthProvider::removeRequiredParameter — 移除一個必要的參數

OAuthProvider::reportProblem set— 報告問題🜎 — 設定請求令牌路徑

OAuthProvider::timestampNonceHandler — 設定timestampNonceHandler 句柄回呼函數

OAuthProvider::tokenHandler — 設定tokenHandler 句柄回呼函數

OAuthException 類別🎠 類

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板