PHP擴展之Web服務(一)——OAuth
此擴展提供 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?。//??如果沒有則返回?0if(!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);}?>三、相關函數oauth_get_sbs?— 生成一個簽名字符基串oauth_urlencode?— 將 URI 編碼為 RFC 3986 規范四、相關類及其成員函數
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?— 為后續請求設置現時標志OAuth::setRequestEngine?— 設置目標請求引擎OAuth::setRSACertificate?— 設置 RSA 證書OAuth::setSSLChecks?— 調整特定的SSL請求檢查OAuth::setTimestamp?— 設置時間戳OAuth::setToken?— 設置令牌和 secretOAuth::setVersion?— 設置 OAuth 版本OAuthProvider 類
OAuthProvider::addRequiredParameter?— 添加必需的參數OAuthProvider::callconsumerHandler?— 調用 consumerNonceHandler 回調函數OAuthProvider::callTimestampNonceHandler?— 調用 timestampNonceHandler 回調函數OAuthProvider::calltokenHandler?— 調用 tokenNonceHandler 回調函數OAuthProvider::checkOAuthRequest?— 檢查一個 oauth 請求OAuthProvider::__construct?— 新建一個 OAuthProvider 對象OAuthProvider::consumerHandler?— 設置 consumerHandler 句柄回調函數OAuthProvider::generateToken?— 生成一個隨機令牌OAuthProvider::is2LeggedEndpoint?— is2LeggedEndpointOAuthProvider::isRequestTokenEndpoint?— 設置 isRequestTokenEndpointOAuthProvider::removeRequiredParameter?— 移除一個必需的參數OAuthProvider::reportProblem?— 報告問題OAuthProvider::setParam?— 設置一個參數OAuthProvider::setRequestTokenPath?— 設置請求令牌路徑OAuthProvider::timestampNonceHandler?— 設置 timestampNonceHandler 句柄回調函數OAuthProvider::tokenHandler?— 設置 tokenHandler 句柄回調函數OAuthException 類
OAuthException?— OAuthException 類相關文章: