dflydev / stack-hawk
Hawk Stack中间件
dev-master / 1.0.x-dev
2013-08-02 04:22 UTC
Requires
- php: >=5.4.0
- dflydev/hawk: 1.0.*@dev
- dflydev/stack-authentication: 1.0.*@dev
- dflydev/stack-firewall: 1.0.*@dev
- symfony/http-foundation: ~2.1
- symfony/http-kernel: ~2.1
Requires (Dev)
- phpunit/phpunit: 3.7.21
- silex/silex: 1.1.*@dev
- stack/builder: ~1.0@dev
- stack/callable-http-kernel: ~1.0@dev
- stack/inline: ~1.0@dev
- symfony/browser-kit: ~2.1
This package is auto-updated.
Last update: 2024-08-29 04:08:55 UTC
README
A Stack middleware to enable Hawk authentication following the STACK-2 Authentication conventions.
安装
通过Composer作为dflydev/stack-hawk。
用法
Hawk中间件接受以下选项
- credentials_provider: (必填) 一个
Dflydev\Hawk\Credentials\CredentialsProviderInterface
的实例,或者一个接收一个ID作为其唯一参数的可调用函数,并期望返回一个Dflydev\Hawk\Credentials\CredentialsInterface
或null。 - sign_response: 响应应该被签名吗?布尔值。默认为true。
- validate_payload_response: 应该验证响应体吗?布尔值。默认为true。
- validate_payload_request: 应该验证请求数据吗?布尔值。默认为true。
- crypto: 一个
Dflydev\Hawk\Crypto\Crypto
的实例,或者一个返回Dflydev\Hawk\Crypto\Crypto
实例的可调用函数。 - server: 一个
Dflydev\Hawk\Server\ServerInterface
的实例,或者一个返回Dflydev\Hawk\Server\ServerInterface
实例的可调用函数。 - time_provider: 一个
Dflydev\Hawk\Time\TimeProviderInterface
的实例,或者一个返回Dflydev\Hawk\Time\TimeProviderInterface
实例的可调用函数。 - token_translator: 一个接收一个
Dflydev\Hawk\Credentials\CredentialsInterface
作为其唯一参数的可调用函数,并期望返回一个token。默认实现返回$credentials->id()
作为token。 - firewall: 与dflydev/stack-firewall兼容的防火墙配置。
<?php use Dflydev\Hawk\Credentials\Credentials; $credentialsProvider = function ($id) { // Simulate a know valid set of credentials. $validCredentials = new Credentials('key1234', 'sha256', 'id1234'); if ($validCredentials === $id) { return $validCredentials; } }; $tokenTranslator = function (CredentialsInterface $credentials) { // This is the same as the default implementation and shown merely for // demonstration purposes. If the token should be something other than // the ID this callback can be defined; otherwise, if the ID is sufficient, // defining this callback can be skipped entirely. return $credentials->id(); }; $app = new Dflydev\Stack\Hawk($app, [ 'firewall' => [ ['path' => '/api'], // Only /api requests will be protected by Hawk! ], 'credentials_provider' => $credentialsProvider, 'token_translator' => $tokenTranslator, 'sign_response' => false, // do not sign the response; default true ]);
许可证
MIT,请参阅LICENSE。
社区
如果您有任何问题或想帮忙,请加入我们位于irc.freenode.net的#stackphp或#dflydev频道。