一、概述與安裝
此擴充功能提供 OAuth 消費方和提供者之間的綁定。 OAuth 是一種建立在 HTTP 之上的授權協議,用於允許應用程式安全存取資料而無需儲存使用者名稱和密碼。
PECL/oauth 需要 PHP 5.1 或更高版本,以及 ext/hash 和 ext/pcre 。
如果在建置時選擇 PECL/oauth 則可選擇性地需要 libcurl 。如果使用 libcurl 配置,則必須建置 HTTPS 支援。
安裝此 PECL 擴充相關的資訊可在手冊中標題為 PECL 擴充的安裝章節中找到。
二、使用範例
<?php $req_url = 'https://fireeagle.yahooapis.com/oauth/request_token'; $authurl = 'https://fireeagle.yahoo.net/oauth/authorize'; $acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token'; $api_url = 'https://fireeagle.yahooapis.com/api/0.1'; $conskey = 'your_consumer_key'; $conssec = 'your_consumer_secret'; session_start(); // 当 state=1 则下次请求应该包含一个 oauth_token 。 // 如果没有则返回 0 if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0; try { $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI); $oauth->enableDebug(); if(!isset($_GET['oauth_token']) && !$_SESSION['state']) { $request_token_info = $oauth->getRequestToken($req_url); $_SESSION['secret'] = $request_token_info['oauth_token_secret']; $_SESSION['state'] = 1; header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']); exit; } else if($_SESSION['state']==1) { $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']); $access_token_info = $oauth->getAccessToken($acc_url); $_SESSION['state'] = 2; $_SESSION['token'] = $access_token_info['oauth_token']; $_SESSION['secret'] = $access_token_info['oauth_token_secret']; } $oauth->setToken($_SESSION['token'],$_SESSION['secret']); $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 — 設定令牌和secretOA::setVersionVersionAage OAuthProvider::addRequiredParameter — 新增必要的參數OAuthProvider::callconsumerHandler — 呼叫consumerNonceHandler 回呼函數OAuthProvider::callTimestampNoncedler kenNonceHandler 回呼函數OAuthProvider::checkOAuthRequest — 檢查一個oauth 請求OAuthProvider::__construct — 新建一個OAuthProvider 物件OAuthProvider::consumerHandler — 設定consumerHandler 句柄回調函數 2LeggedEndpointOAuthProvider: :isRequestTokenEndpoint — 設定isRequestTokenEndpointOAuthProvider::removeRequiredParameter — 移除一個必要的參數OAuthProvider::reportProblem set— 報告問題🜎 — 設定請求令牌路徑OAuthProvider::timestampNonceHandler — 設定timestampNonceHandler 句柄回呼函數OAuthProvider::tokenHandler — 設定tokenHandler 句柄回呼函數OAuthException 類別🎠 類