redeye/stormpath-bundle

将Stormpath集成到Symfony的包

安装次数: 3,487

依赖项: 0

建议者: 0

安全: 0

星标: 5

关注者: 14

分支: 0

开放问题: 1

类型:symfony-bundle

2.0.0-beta3 2016-11-15 11:35 UTC

README

此包将Stormpath集成到Symfony中。

通过Composer安装

composer require redeye/stormpath-bundle

配置

注册包

<?php
// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ...
        new Redeye\StormpathBundle\RedeyeStormpathBundle(),
    );
    // ...
}

获取你的 stormpath.properties 文件,并将其放在方便的位置,例如 app/config/

以下是一个示例最小化包配置

# app/config/config.yml
redeye_stormpath:
    client:
        api_key_file: %kernel.root_dir%/config/stormpath.properties

而这是一个更完整的配置

# app/config/config.yml
redeye_stormpath:
    client:
        api_key_file: %kernel.root_dir%/config/stormpath.properties
        cache:
            type: redis # or array, memcached, null, service
            redis:
                host: 127.0.0.1
                port: 6379
            memcached:
            	- { host: 127.0.0.1, port: 11211, weight: 1 }
            service: your_own_psr_6_cache
            ttl: 60
            tti: 120
        tentant_href: https://api.stormpath.com/v1/tenants/123abc
        default_application_href: https://api.stormpath.com/v1/applications/124abd
    resource_registries:
        groups:
            mygroup: https://api.stormpath.com/v1/groups/111aaa

使用方法

该包包含一个Stormpath用户提供者和两个Stormpath身份验证器,一个用于HTTP基本认证,一个用于表单登录。

以下是一个使用表单登录的示例 security.yml

# app/config/security.yml
security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    providers:
        stormpath:
            id: redeye_stormpath.security.user_provider

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern: ^/
            anonymous: true
            stormpath_form_login:
                login_path: login
                check_path: login_check
            logout:
                path: logout
                target: /

    access_control:
        - { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, role: ROLE_ADMIN }

实用功能

此包包含一些实用的功能

  • 设置 tenant_href 配置设置可以节省每个请求一次Stormpath API调用
  • 设置 default_application_namedefault_application_href 也可以节省每个请求一次Stormpath API调用
  • 资源注册表允许您通过所选名称而不是长ID来引用Stormpath组和目录。要取消引用,获取适当的服务(例如 redeye_stormpath.resource_registry.group_hrefredeye_stormpath.resource_registry.directory_href),并调用例如 $href = $registry->get('mygroup'); 以获取适当的href。
  • 在应用程序、目录或组上设置名为“role”的自定义数据属性,该应用程序/目录/组中的所有用户都将获得该角色。

尚未实现

包中还有一些尚未实现的功能。这包括(但不仅限于)

  • 社交登录
  • ID站点(用于SSO)
  • SAML
  • 令牌认证
  • 多因素认证
  • Active Directory

如果您需要这些功能之一,并且愿意实现它,我们接受pull请求。