>백엔드 개발 >PHP 튜토리얼 >PHP 확장 - OAuth

PHP 확장 - OAuth

伊谢尔伦
伊谢尔伦원래의
2016-11-21 16:55:422090검색

1. 개요 및 설치

이 확장은 OAuth 소비자와 공급자 간의 바인딩을 제공합니다. OAuth는 애플리케이션이 사용자 이름과 비밀번호를 저장하지 않고도 데이터에 안전하게 액세스할 수 있도록 HTTP를 기반으로 구축된 인증 프로토콜입니다.

PECL/oauth에는 PHP 5.1 이상이 필요하며 ext/hash 및 ext/pcre도 필요합니다.

빌드 시 PECL/oauth를 선택한 경우 선택적으로 libcurl이 필요합니다. libcurl 구성을 사용하는 경우 HTTPS 지원을 구축해야 합니다.

이 PECL 확장 설치에 ​​대한 정보는 PECL 확장 설치라는 제목의 매뉴얼 장에서 찾을 수 있습니다.

2. 사용 예

<?php
$req_url = &#39;https://fireeagle.yahooapis.com/oauth/request_token&#39;;
$authurl = &#39;https://fireeagle.yahoo.net/oauth/authorize&#39;;
$acc_url = &#39;https://fireeagle.yahooapis.com/oauth/access_token&#39;;
$api_url = &#39;https://fireeagle.yahooapis.com/api/0.1&#39;;
$conskey = &#39;your_consumer_key&#39;;
$conssec = &#39;your_consumer_secret&#39;;
session_start();
//  当 state=1 则下次请求应该包含一个 oauth_token 。
//  如果没有则返回 0
if(!isset($_GET[&#39;oauth_token&#39;]) && $_SESSION[&#39;state&#39;]==1) $_SESSION[&#39;state&#39;] = 0;
try {
    $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
    $oauth->enableDebug();
    if(!isset($_GET[&#39;oauth_token&#39;]) && !$_SESSION[&#39;state&#39;]) {
        $request_token_info = $oauth->getRequestToken($req_url);
        $_SESSION[&#39;secret&#39;] = $request_token_info[&#39;oauth_token_secret&#39;];
        $_SESSION[&#39;state&#39;] = 1;
        header(&#39;Location: &#39;.$authurl.&#39;?oauth_token=&#39;.$request_token_info[&#39;oauth_token&#39;]);
        exit;
    } else if($_SESSION[&#39;state&#39;]==1) {
        $oauth->setToken($_GET[&#39;oauth_token&#39;],$_SESSION[&#39;secret&#39;]);
        $access_token_info = $oauth->getAccessToken($acc_url);
        $_SESSION[&#39;state&#39;] = 2;
        $_SESSION[&#39;token&#39;] = $access_token_info[&#39;oauth_token&#39;];
        $_SESSION[&#39;secret&#39;] = $access_token_info[&#39;oauth_token_secret&#39;];
    }
    $oauth->setToken($_SESSION[&#39;token&#39;],$_SESSION[&#39;secret&#39;]);
    $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 클래스


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 확장—SOAP다음 기사:PHP 확장—SOAP