PHP擴(kuò)展之Web服務(wù)(一)——OAuth
此擴(kuò)展提供 OAuth 消費(fèi)方和提供方之間的綁定。OAuth 是一種建立在 HTTP 之上的授權(quán)協(xié)議,用于允許應(yīng)用程序安全訪問數(shù)據(jù)而無需存儲(chǔ)用戶名和密碼。
PECL/oauth 需要 PHP 5.1 或更高版本,以及 ext/hash 和 ext/pcre 。
如果在構(gòu)建時(shí)選擇 PECL/oauth 則可選擇性地需要 libcurl 。如果使用 libcurl 配置,則必須構(gòu)建 HTTPS 支持。
安裝此 PECL 擴(kuò)展相關(guān)的信息可在手冊中標(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?則下次請求應(yīng)該包含一個(gè)?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);}?>三、相關(guān)函數(shù)oauth_get_sbs?— 生成一個(gè)簽名字符基串oauth_urlencode?— 將 URI 編碼為 RFC 3986 規(guī)范四、相關(guān)類及其成員函數(shù)
OAuth類
OAuth::__construct?— 新建一個(gè) OAuth 對象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è)訪問令牌OAuth::getCAPath?— 獲取 CA 信息OAuth::getLastResponse?— 獲取最后一次的響應(yīng)OAuth::getLastResponseHeaders?— 獲取最后一次響應(yīng)的頭信息OAuth::getLastResponseInfo?— 獲取關(guān)于最后一次響應(yīng)的 HTTP 信息OAuth::getRequestHeader?— 生成 OAuth 頭信息字符串簽名OAuth::getRequestToken?— 獲取一個(gè)請求令牌OAuth::setAuthType?— 設(shè)置授權(quán)類型OAuth::setCAPath?— 設(shè)置 CA 路徑和信息OAuth::setNonce?— 為后續(xù)請求設(shè)置現(xiàn)時(shí)標(biāo)志OAuth::setRequestEngine?— 設(shè)置目標(biāo)請求引擎OAuth::setRSACertificate?— 設(shè)置 RSA 證書OAuth::setSSLChecks?— 調(diào)整特定的SSL請求檢查OAuth::setTimestamp?— 設(shè)置時(shí)間戳OAuth::setToken?— 設(shè)置令牌和 secretOAuth::setVersion?— 設(shè)置 OAuth 版本OAuthProvider 類
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 請求OAuthProvider::__construct?— 新建一個(gè) OAuthProvider 對象OAuthProvider::consumerHandler?— 設(shè)置 consumerHandler 句柄回調(diào)函數(shù)OAuthProvider::generateToken?— 生成一個(gè)隨機(jī)令牌OAuthProvider::is2LeggedEndpoint?— is2LeggedEndpointOAuthProvider::isRequestTokenEndpoint?— 設(shè)置 isRequestTokenEndpointOAuthProvider::removeRequiredParameter?— 移除一個(gè)必需的參數(shù)OAuthProvider::reportProblem?— 報(bào)告問題OAuthProvider::setParam?— 設(shè)置一個(gè)參數(shù)OAuthProvider::setRequestTokenPath?— 設(shè)置請求令牌路徑OAuthProvider::timestampNonceHandler?— 設(shè)置 timestampNonceHandler 句柄回調(diào)函數(shù)OAuthProvider::tokenHandler?— 設(shè)置 tokenHandler 句柄回調(diào)函數(shù)OAuthException 類
OAuthException?— OAuthException 類相關(guān)文章:
1. XML在語音合成中的應(yīng)用2. jscript與vbscript 操作XML元素屬性的代碼3. 不要在HTML中濫用div4. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)5. .NET Framework各版本(.NET2.0 3.0 3.5 4.0)區(qū)別6. ASP基礎(chǔ)入門第四篇(腳本變量、函數(shù)、過程和條件語句)7. ASP將數(shù)字轉(zhuǎn)中文數(shù)字(大寫金額)的函數(shù)8. XML入門的常見問題(三)9. php使用正則驗(yàn)證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)10. HTTP協(xié)議常用的請求頭和響應(yīng)頭響應(yīng)詳解說明(學(xué)習(xí))
