epustobaev/signed-auth-bundle

1.0.1 2015-08-15 06:30 UTC

This package is not auto-updated.

Last update: 2024-10-02 10:17:19 UTC


README

SensioLabsInsight

关于

The SignedAuthBundle 允许您在 Symfony 2 项目中使用带散列请求参数和密钥的令牌进行认证。

特性

  • 令牌可以通过头部或 GET|POST 参数提供
  • 可配置的散列参数:密钥获取器、散列字符串连接分隔符、令牌分隔符、令牌键名
  • 能够对请求参数(uri、host 等)、头部和查询(POST 和 GET)进行签名

安装

在 composer.json 中要求 epustobaev/signed-auth-bundle 包,并更新您的依赖。

$ composer require epustobaev/signed-auth-bundle

将 SignedAuthBundle 添加到您的应用程序内核中

public function registerBundles()
{
    $bundles = array(
        ...
        new Dendy\SignedAuthBundle\DendySignedAuthBundle(),
        ...
    );
    ...
}

配置

示例使用 orm 用户提供者,令牌在请求头部 "x-auth" 中,签名参数来自头部、查询和请求,散列算法 md5 和默认分隔符。示例令牌值:username:ec1cef72d94b43cc96fc8a866f6e19d3

security:
    providers:
        some_provider:
            entity:
                class: Namespace\Bundle\SomeBundle\Entity\SomeUser
                property: name
                manager_name: default
    firewalls:
        ## some other
        signed_secured:
            pattern:   ^/api/
            stateless: true
            provider: some_provider
            signed:
                auth_type: header
                request_key: x-auth
                token_delimiter: ':'
                data_delimiter: '|'
                hash_alg: 'md5'
                secret_getter: 'getAuthSecret'
                signed_params:
                    headers: ['Host', 'User-Agent']
                    query: ['username']
                    request: ['requestUri']

auth_type - 默认值是 'request' - 从 GET 或 POST 获取令牌值,反之 'headers' 表示令牌在请求头部提供。

request_key - 默认值是 'sign',否则可以是任何字符串值。

token_delimiter - 默认值是 ':', 否则可以是任何字符串值。

data_delimiter - 默认值是 ':', 否则可以是任何字符串值。

hash_alg - 默认值是 'md5',查看接受值 https://php.ac.cn/manual/ru/function.hash-algos.php

secret_getter - 用于获取密钥的用户对象的函数。

signed_params - 签名值配置,从 Symfony\Component\HttpFoundation\Request 实例获取数据。

signed_params[headers] - 要签名的请求头数组($request->headers->get('Host'))。

signed_params[query] - 请求查询参数数组($request->get('Host'))。

signed_params[request] - 请求查询参数数组($request->getRequestUri())。