Download the PHP package ridibooks/oauth2 without Composer
On this page you can find all versions of the php package ridibooks/oauth2. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package oauth2
ridibooks/oauth2
소개
- OAuth2 클라이언트와 리소스 서버를 구축하기 위한 PHP 라이브러리입니다.
- Ridi 스타일 가이드(내부 서비스간의 SSO)에 따라 작성 되었습니다.
- JWK Caching 를 선택적으로 지원합니다. psr-6의 구현체를 JwtTokenValidator에 주입하면 캐싱 기능을 사용할 수 있습니다.
Requirements
PHP 7.2
or higherphp7.2-gmp
web-token decryption 모듈을 위해서는 php7.2-gmp 를 os 내에 설치해줘야 합니다. 따라서 이 라이브러리 클라이언트들의 OS 혹은 도커 이미지 내에 꼭 설치해주시길 바랍니다. 참고 PRsilex/silex v1.3.x
(optional)symfony/symfony v4.x.x
(optional)guzzlehttp/guzzle
(optional)
Installation
Usage
JwtTokenValidator Without Caching
JwtTokenValidator With Caching
ScopeChecker
Granter
Usage: with Silex Provider
OAuth2ServiceProvider
를 Silex 애플리케이션에 등록(register
)해 사용한다.
Services
OAuth2ProviderKeyConstant::GRANTER
authorize(string $state, string $redirect_uri = null, array $scope = null): string
:/authorize
를 위한 URL을 반환
OAuth2ProviderKeyConstant::AUTHORIZER
autorize(Request $request): JwtToken
:access_token
유효성 검사 후JwtToken
객체를 반환
OAuth2ProviderKeyConstant::MIDDLEWARE
authorize(OAuth2ExceptionHandlerInterface $exception_handler = null, UserProviderInterface $user_provider = null, array $required_scopes = [])
: 미들웨어를 반환
Example: OAuth2ProviderKeyConstant::MIDDLEWARE
Service
Example: OAuth2ProviderKeyConstant::AUTHORIZER
Service
Usage: with Symfony Bundle
Services
Granter()
OAuth2ServiceProvider::getGranter()
Granter::authorize(string $state, string $redirect_uri = null, array $scope = null): string
:/authorize
를 위한 URL을 반환
Authorizer()
OAuth2ServiceProvider::getAuthorizer()
Authorizer::autorize(Request $request): JwtToken
:access_token
유효성 검사 후JwtToken
객체를 반환
OAuth2Middleware
OAuth2ServiceProvider::getMiddleware()
OAuth2ServiceProvider
생성 시, Symfony Event Subscriber로 등록
Example: OAuth2Middleware
Service
Configuration
- 설정 예시는
tests/Symfony
에서 살펴볼 수 있습니다.
1. OAuth2ServiceProviderBundle
등록
2. Parameter 및 Service 설정
- '%env(VARIABLE)%'을 이용해 environment variable을 이용할 수 있습니다.
- Required
- client_id
- client_secret
- authorize_url
- token_url
- jwk_url
- user_info_url
- token_cookie_domain
- default_exception_handler
- optional
- client_default_scope
- client_default_redirect_uri
- default_user_provider
- cache_item_pool # psr-6의 구현체를 주입하면 Jwk 요청 시 캐싱 기능을 사용할 수 있습니다.
3. Controller 설정
OAuth2 Exception Handler 설정
- Exception Handler는 OAuth2 과정 중, 오류 발생 시 Exception 상황을 처리하는 역할을 담당합니다.
- Application Controller에서
default_exception_handler
파라미터로 지정한 Exception Handler가 아닌 별도의 Exception Handler를 이용하려는 경우, 아래 절차를 따릅니다.Ridibooks\OAuth2\Symfony\Handler\OAuth2ExceptionHandlerInterface
를 implement한 Exception Handler를 생성합니다.- example:
Ridibooks\Test\OAuth2\Symfony\TestExceptionHandler
- example:
- Application Controller의
@OAuth2
Annotation에서exception_handler
속성을 지정합니다.- example:
@OAuth2(exception_handler="Ridibooks\Test\OAuth2\Symfony\TestExceptionHandler")
- example:
Custom User Provider 설정
- User Provider는 인증 이후, User 정보를 가져오는 역할을 담당합니다.
default_user_provider
파라미터를 지정하지 않은 경우, 기본적으로Ridibooks\OAuth2\Symfony\Provider\DefaultUserProvider
를 이용합니다.- Application Controller에서
default_user_provider
파라미터로 지정한 User Provider가 아닌 별도의 User Provider를 이용하려는 경우, 아래 절차를 따릅니다.Ridibooks\OAuth2\Symfony\Provider\UserProviderInterface
를 implement한 User Provider를 생성합니다.- Application Controller의
@OAuth2
Annotation에서user_provider
속성을 지정합니다.
Cache Item Pool 설정
- Cache Item Pool 은 Jwk 를 캐싱하는 역할을 담당합니다.
유의할 점
- Jwk Multi signatures 를 지원하지 않습니다. 오직 첫 번째 인덱스의 시그니쳐를 가져와서 decode 합니다.
- Jwk Cache File 의 TTL(Time To Live)는 5분 입니다.
All versions of oauth2 with dependencies
PHP Build Version
Package Version
Requires
web-token/jwt-core Version
^2.1
web-token/jwt-key-mgmt Version ^2.1
web-token/jwt-signature Version ^2.1
web-token/jwt-signature-algorithm-rsa Version ^2.1
web-token/jwt-checker Version ^2.1
web-token/jwt-signature-algorithm-ecdsa Version ^2.1
web-token/jwt-key-mgmt Version ^2.1
web-token/jwt-signature Version ^2.1
web-token/jwt-signature-algorithm-rsa Version ^2.1
web-token/jwt-checker Version ^2.1
web-token/jwt-signature-algorithm-ecdsa Version ^2.1
The package ridibooks/oauth2 contains the following files
Loading the files please wait ....