1. 개요 및 설치
이 확장은 OAuth 소비자와 공급자 간의 바인딩을 제공합니다. OAuth는 애플리케이션이 사용자 이름과 비밀번호를 저장하지 않고도 데이터에 안전하게 액세스할 수 있도록 HTTP를 기반으로 구축된 인증 프로토콜입니다.
PECL/oauth에는 PHP 5.1 이상이 필요하며 ext/hash 및 ext/pcre도 필요합니다.
빌드 시 PECL/oauth를 선택한 경우 선택적으로 libcurl이 필요합니다. libcurl 구성을 사용하는 경우 HTTPS 지원을 구축해야 합니다.
이 PECL 확장 설치에 대한 정보는 PECL 확장 설치라는 제목의 매뉴얼 장에서 찾을 수 있습니다.
2. 사용 예
<?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); } ?>
3. 관련 함수
oauth_get_sbs — 서명 기본 문자열 생성
oauth_urlencode — URI를 RFC 3986 사양으로 인코딩
4. 관련 클래스 및 해당 멤버 함수
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 — 후속 요청에 대한 nonce 설정
OAuth::setRequestEngine — 대상 요청 엔진 설정
OAuth::setRSACertificate — RSA 인증서 설정
OAuth::setSSLChecks — 특정 SSL 요청 검사 조정
OAuth::setTimestamp — 타임스탬프 설정
OAuth::setToken — 토큰 및 비밀번호 설정
OAuth::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 — is2LeggedEndpoint
OAuthProvider::isRequestTokenEndpoint — isRequestTokenEndpoint 설정
OAuthProvider::removeRequiredParameter — 필수 매개변수 제거
OAuthProvider::reportProblem — 문제 보고
OAuthProvider::setParam — 매개변수 설정
OAuthProvider::setRequestTokenPath — 요청 토큰 경로 설정
OAuthProvider::timestampNonceHandler — 타임스탬프NonceHandler 핸들 콜백 함수 설정
OAuthProvider::tokenHandler — tokenHandler 핸들 콜백 함수 설정
OAuthException 클래스
OAuthException — OAuthException 클래스