PHP擴(kuò)展之Web服務(wù)(一)——OAuth
此擴(kuò)展提供 OAuth 消費(fèi)方和提供方之間的綁定。OAuth 是一種建立在 HTTP 之上的授權(quán)協(xié)議,用于允許應(yīng)用程序安全訪問(wèn)數(shù)據(jù)而無(wú)需存儲(chǔ)用戶名和密碼。
PECL/oauth 需要 PHP 5.1 或更高版本,以及 ext/hash 和 ext/pcre 。
如果在構(gòu)建時(shí)選擇 PECL/oauth 則可選擇性地需要 libcurl 。如果使用 libcurl 配置,則必須構(gòu)建 HTTPS 支持。
安裝此 PECL 擴(kuò)展相關(guān)的信息可在手冊(cè)中標(biāo)題為?PECL 擴(kuò)展的安裝章節(jié)中找到。
二、使用范例<?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();//??當(dāng)?state=1?則下次請(qǐng)求應(yīng)該包含一個(gè)?oauth_token?。//??如果沒(méi)有則返回?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);}?>三、相關(guān)函數(shù)oauth_get_sbs?— 生成一個(gè)簽名字符基串oauth_urlencode?— 將 URI 編碼為 RFC 3986 規(guī)范四、相關(guān)類(lèi)及其成員函數(shù)
OAuth類(lèi)
OAuth::__construct?— 新建一個(gè) OAuth 對(duì)象OAuth::__destruct?— 析構(gòu)函數(shù)OAuth::disableDebug?— 關(guān)閉詳細(xì)的調(diào)試OAuth::disableRedirects?— 關(guān)閉重定向OAuth::disableSSLChecks?— 關(guān)閉 SSL 檢查OAuth::enableDebug?— 啟用詳細(xì)調(diào)試OAuth::enableRedirects?— 啟用重定向OAuth::enableSSLChecks?— 啟用 SSL 檢查OAuth::fetch?— 獲取一個(gè) OAuth 受保護(hù)的資源OAuth::generateSignature?— 生成一個(gè)簽名OAuth::getAccessToken?— 獲取一個(gè)訪問(wèn)令牌OAuth::getCAPath?— 獲取 CA 信息OAuth::getLastResponse?— 獲取最后一次的響應(yīng)OAuth::getLastResponseHeaders?— 獲取最后一次響應(yīng)的頭信息OAuth::getLastResponseInfo?— 獲取關(guān)于最后一次響應(yīng)的 HTTP 信息OAuth::getRequestHeader?— 生成 OAuth 頭信息字符串簽名OAuth::getRequestToken?— 獲取一個(gè)請(qǐng)求令牌OAuth::setAuthType?— 設(shè)置授權(quán)類(lèi)型OAuth::setCAPath?— 設(shè)置 CA 路徑和信息OAuth::setNonce?— 為后續(xù)請(qǐng)求設(shè)置現(xiàn)時(shí)標(biāo)志OAuth::setRequestEngine?— 設(shè)置目標(biāo)請(qǐng)求引擎OAuth::setRSACertificate?— 設(shè)置 RSA 證書(shū)OAuth::setSSLChecks?— 調(diào)整特定的SSL請(qǐng)求檢查OAuth::setTimestamp?— 設(shè)置時(shí)間戳OAuth::setToken?— 設(shè)置令牌和 secretOAuth::setVersion?— 設(shè)置 OAuth 版本OAuthProvider 類(lèi)
OAuthProvider::addRequiredParameter?— 添加必需的參數(shù)OAuthProvider::callconsumerHandler?— 調(diào)用 consumerNonceHandler 回調(diào)函數(shù)OAuthProvider::callTimestampNonceHandler?— 調(diào)用 timestampNonceHandler 回調(diào)函數(shù)OAuthProvider::calltokenHandler?— 調(diào)用 tokenNonceHandler 回調(diào)函數(shù)OAuthProvider::checkOAuthRequest?— 檢查一個(gè) oauth 請(qǐng)求OAuthProvider::__construct?— 新建一個(gè) OAuthProvider 對(duì)象OAuthProvider::consumerHandler?— 設(shè)置 consumerHandler 句柄回調(diào)函數(shù)OAuthProvider::generateToken?— 生成一個(gè)隨機(jī)令牌OAuthProvider::is2LeggedEndpoint?— is2LeggedEndpointOAuthProvider::isRequestTokenEndpoint?— 設(shè)置 isRequestTokenEndpointOAuthProvider::removeRequiredParameter?— 移除一個(gè)必需的參數(shù)OAuthProvider::reportProblem?— 報(bào)告問(wèn)題OAuthProvider::setParam?— 設(shè)置一個(gè)參數(shù)OAuthProvider::setRequestTokenPath?— 設(shè)置請(qǐng)求令牌路徑OAuthProvider::timestampNonceHandler?— 設(shè)置 timestampNonceHandler 句柄回調(diào)函數(shù)OAuthProvider::tokenHandler?— 設(shè)置 tokenHandler 句柄回調(diào)函數(shù)OAuthException 類(lèi)
OAuthException?— OAuthException 類(lèi)相關(guān)文章:
1. ASP常用日期格式化函數(shù) FormatDate()2. HTML5 Canvas繪制圖形從入門(mén)到精通3. ASP基礎(chǔ)知識(shí)Command對(duì)象講解4. asp讀取xml文件和記數(shù)5. ASP基礎(chǔ)入門(mén)第三篇(ASP腳本基礎(chǔ))6. chat.asp聊天程序的編寫(xiě)方法7. css進(jìn)階學(xué)習(xí) 選擇符8. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法9. JSP實(shí)現(xiàn)文件上傳功能10. ASP中實(shí)現(xiàn)字符部位類(lèi)似.NET里String對(duì)象的PadLeft和PadRight函數(shù)
