epustobaev / signed-auth-bundle
签名认证包
Requires
- php: >=5.5.0
- symfony/monolog-bundle: ~2.4
- symfony/symfony: >=2.4
This package is not auto-updated.
Last update: 2024-10-02 10:17:19 UTC
README
关于
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()
)。