anzusystems / auth-bundle
Anzu授权服务
2.1.0
2024-05-29 10:45 UTC
Requires
- php: >=8.2
- ext-json: *
- ext-redis: *
- anzusystems/common-bundle: ^7.0|^8.0
- doctrine/common: ^3.3
- lcobucci/jwt: ^4.2
Requires (Dev)
- doctrine/orm: ^2.13|^3.0
- nelmio/api-doc-bundle: ^4.9
- slevomat/coding-standard: ^8.5
- symfony/test-pack: ^1.0
- symplify/easy-coding-standard: ^11.1
- vimeo/psalm: ^5.0
README
为Anzusystems项目提供授权功能。
安装
在容器内执行以下命令以下载最新版本的包
$ composer require anzusystems/auth-bundle --no-scripts
步骤3:使用包
在config/anzu_systems_auth.yaml
中配置AnzuAuthBundle
anzu_systems_auth: cookie: domain: .anzusystems.localhost secure: false # use true for PROD environment! jwt: audience: anz algorithm: ES256 # enum (ES256|RS256), default "ES256" public_cert: '%env(base64:AUTH_JWT_PUBLIC_CERT)%' # string representation of a public certificate private_cert: '%env(base64:AUTH_JWT_PRIVATE_CERT)%' # string representation of a private certificate authorization: enabled: true refresh_token: storage: redis: service_id: SharedTokenStorageRedis # service id of \Redis instance auth_redirect_default_url: http://admin-dam.anzusystems.localhost auth_redirect_query_url_allowed_pattern: '^https?://(.*)\.anzusystems\.localhost(:\d{2,5})$' type: json_credentials
在config/security.yaml
中配置SecurityBundle
security: providers: app_user_provider_email: entity: class: App\Entity\User property: email auth: pattern: ^/api/auth/ stateless: true provider: app_user_provider_email json_login: check_path: auth_login success_handler: AnzuSystems\AuthBundle\Security\AuthenticationSuccessHandler failure_handler: AnzuSystems\AuthBundle\Security\AuthenticationFailureHandler logout: path: auth_logout access_control: - { path: ^/api/auth/, roles: PUBLIC_ACCESS }
配置路由
$routes ->import('@AnzuSystemsAuthBundle/Controller/Api/JsonCredentialsAuthController.php', type: 'attribute') ->prefix('/api/auth/');