OAuth 확장

OAuth 확장 (OAuth)

제3자 서비스의 데이터에 사용자 이름·비밀번호를 저장하지 않고 안전하게 접근해야 할 때가 있어요. OAuth 확장은 HTTP 위에서 동작하는 인증 프로토콜인 OAuth 1.0a의 소비자(consumer)와 공급자(provider) 바인딩을 제공합니다.

출처: PHP 공식 매뉴얼 - OAuth

본문

OAuth는 HTTP 위에 구축된 인증(in authorization) 프로토콜이에요. 애플리케이션이 사용자 이름과 비밀번호를 저장하지 않고도 데이터에 안전하게 접근할 수 있게 해 줍니다. 이 확장은 OAuth 1.0a 소비자와 공급자 양쪽을 지원합니다.

구성 요소

  • 설치/설정: Requirements, Installation, Predefined Constants
  • 예제: FireEagle

OAuth 함수 일람

  • oauth_get_sbs — 서명 기본 문자열(Signature Base String) 생성
  • oauth_urlencode — URI를 RFC 3986 규격으로 인코딩

OAuth 클래스

OAuth 클래스는 소비자 기능을 제공하며 주요 메서드는 다음과 같아요.

  • __construct — 새 OAuth 객체 생성
  • fetch — OAuth 보호 리소스 가져오기
  • generateSignature — 서명 생성
  • getAccessToken — 액세스 토큰 가져오기
  • getRequestToken — 요청 토큰 가져오기
  • getLastResponse / getLastResponseHeaders / getLastResponseInfo — 마지막 응답 관련
  • getRequestHeader — OAuth 헤더 문자열 서명 생성
  • setToken — 토큰과 시크릿 설정
  • setAuthType — 인증 타입 설정
  • setNonce, setTimestamp, setVersion — 요청 관련 값 설정
  • setCAPath, setRSACertificate, setSSLChecks — SSL/인증서 설정
  • setRequestEngine — 요청 엔진 설정
  • enableDebug / disableDebug, enableRedirects / disableRedirects, enableSSLChecks / disableSSLChecks — 동작 토글

OAuthProvider 클래스는 공급자(서버) 기능을 제공하며, checkOAuthRequest로 요청을 검사하고 consumerHandler, timestampNonceHandler, tokenHandler 같은 핸들러 콜백을 설정합니다. 그 외 addRequiredParameter, removeRequiredParameter, generateToken, setParam, setRequestTokenPath 등이 있어요.

  • OAuthException — OAuth 예외 클래스

더 알아보기