limit0 / modlr-auth-bundle
为使用modlr的项目实现核心认证服务
v0.2
2017-05-16 17:31 UTC
Requires
- php: >=5.4
- as3/modlr-bundle: dev-master
- lcobucci/jwt: ^3.2
- symfony/framework-bundle: >=2.0 <2.7 || ^3.0
- symfony/yaml: >=2.0 <2.7 || ^3.0
This package is not auto-updated.
Last update: 2024-09-14 20:09:43 UTC
README
为使用as3io/modlr的项目实现核心认证服务
需求
安装
通过composer安装此包
composer require limit0/modlr-auth-bundle
在您的AppKernel.php
中包含此包
public function registerBundles() { $bundles = [ // ... new Limit0\ModlrAuthBundle\Limit0ModlrAuthBundle(), // ...
配置
路由
您需要导入此包的路由。为了防止潜在的冲突问题,请确保在您的应用程序加载API之前加载它
limit0_modlr_auth: resource: "@Limit0ModlrAuthBundle/Resources/config/routing.yml" as3_modlr_bundle: resource: "@As3ModlrBundle/Resources/config/routing.yml" defaults: _format: json # ...
安全性
更新security.yml
配置(提供模板)
添加core_user
提供者
providers: core_user: id: modlr_auth_bundle.security.user_provider.core_user # ...
添加用户编码器
encoders: Limit0\Bundle\ModlrAuthBundle\Security\User\CoreUser: algorithm: bcrypt cost: 13 # ...
提供了两个认证器,一个是无状态的API认证器,它使用JWT
firewalls: api: context: core pattern: ^/api\/rest provider: core_user guard: authenticators: - modlr_auth_bundle.security.authenticator.api
另一个使用有状态的Symfony框架令牌
firewalls: manage: context: core anonymous: ~ provider: core_user guard: authenticators: - modlr_auth_bundle.security.authenticator.core_user remember_me: secret: "%secret%" lifetime: 63072000 name: __modlr-auth always_remember_me: true logout: path: /api/auth/user/destroy invalidate_session: false success_handler: modlr_auth_bundle.security.logout_success_handler
一旦您配置了您的防火墙,配置您的受控路径。
锁定modlr API(将api/rest
替换为您的配置的modlr rest api前缀)
access_control: - { path: ^/api/auth, roles: [ IS_AUTHENTICATED_ANONYMOUSLY ] } - { path: ^/api/rest, roles: [ ROLE_ADMIN\USER ] }
或者也可以锁定整个应用程序
access_control: access_control: - { path: ^/api/auth, roles: [ IS_AUTHENTICATED_ANONYMOUSLY ] } - { path: ^/, roles: [ ROLE_ADMIN\USER ] }