m6web/domain-user-bundle

此包已被放弃,不再维护。没有建议的替代包。

按域名进行用户认证

v3.0.0 2019-11-27 13:41 UTC

This package is auto-updated.

Last update: 2022-03-27 14:02:35 UTC


README

DomainUserBundle 提供通过子域名进行用户认证。它允许通过子域名进行防火墙、缓存定制、路由过滤和数据过滤。

依赖项

DomainUserBundle 需要 FirewallBundle

安装

在您的 composer.json 文件中添加此行

{
    "require": {
        "m6web/domain-user-bundle": "~1.0"
    }
}

更新您的 vendors

$ composer update m6web/domain-user-bundle

添加到您的 AppKernel.php

new M6Web\Bundle\DomainUserBundle\M6WebDomainUserBundle(),
new M6Web\Bundle\FirewallBundle\M6WebFirewallBundle(),

配置

修改您的路由以添加主机要求中的参数

routes:
    resource: api_routing.yml
    host:     {client}api.example.com
    requirements:
        client: ([a-z0-9]+\.)?
    defaults:
        client ""

在您的 app/config.yml 中添加

m6_web_domain_user:
    default_cache:    300      # Default cache duration
    router_parameter: client   # Parameter in the host requirement
    default_user:     public   # User when the parameter is not found
    users_dir:        %kernel.root_dir%/config/users # Directory containing the user configs
    firewall:
        allow_debug_route: false # Allows or not (default) web debug toolbar routes for the concerned environment

添加一个用户 app/config/users/public.yml

firewall:
    user_access: # Configure IP restrictions with FirewallBundle
        default_state: false
        lists:
            internal: true

    allow: # Filter routes alllowed to this user
        default: true
        methods:
            delete: false # Override by method
        resources:
            article: false # Override by routes configured with "defaults: {resource: article}"
        route:
            post_comment: false # Override by route name
        allow_debug_route: false # Allows or not (default) web debug toolbar routes for this user

cache:
    defaults: 60 # Override the default cache duration
    routes:
        hello: 86400 # Override by route name

entities:
    article:
        active: true # Arbitrary flag you can use to filter your entities in your repositories
parameters:
    param_name: param_value # Arbitrary parameters

编辑您的 app/config/security.yml

security:
    firewalls:
        secured_area:
            pattern:            ^/
            anonymous:          false
            m6_web_domain_user: true

    providers:
        m6_web_domain_user:
            id: m6_web_domain_user.user_provider

测试

$ ./vendor/bin/atoum

鸣谢

Cytron TeamM6 Web 开发。使用 atoum 进行测试。

许可协议

DomainUserBundle 在 MIT 许可协议 下发布。