pflorek / php-basic-auth
提供一个简单的方法来获取或设置PSR-7 `RequestInterface`上的凭据(用户名、密码)。它还通过向PSR-7 `ResponseInterface`添加带有状态码401的'WWW-authenticate'头部行来帮助挑战未经授权的客户端。
1.0.1
2018-11-16 00:00 UTC
Requires
- php: >=5.4
- psr/http-message: ^1.0
Requires (Dev)
- phpunit/phpunit: >=4.8.36 <8.0
This package is auto-updated.
Last update: 2024-09-17 09:26:29 UTC
README
此库提供了一个简单的方法来获取或设置PSR-7 RequestInterface
上的凭据(用户名,密码)。它还通过向PSR-7 ResponseInterface
添加带有状态码401的'WWW-authenticate'头部行来帮助挑战未经授权的客户端。如果PSR-15 Middleware
不适用,则应该很有帮助。
- 如果用户名正确(不应包含
:
),则没有验证。 - 此外,如果没有正确地对基本凭据进行base64编码,则没有验证。
- 省略
Authorization
头部行或缺少基本凭据将返回null
凭据。 - 只能挑战
Basic Auth
。目前不支持Digest
。 - 对于PHP >= 5.4的向后兼容性,目前不支持PSR-17 HTTP工厂。
- 应遵守RFC 7617。
用法
获取凭据
从PSR-7请求接口获取凭据(用户名,密码)。
use Psr\Http\Message\RequestInterface; use \PFlorek\BasicAuth\BasicAuth; //Given request with header line 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' $credentials = $this->basicAuth->obtainCredentials($request); var_dump($credentials); //object(Credentials)#1 (2) { // ["username":"Credentials":private]=> // string(7) "Aladdin" // ["password":"Credentials":private]=> // string(11) "open sesame" //}
添加凭据
将凭据(用户名,密码)添加到PSR-7请求接口进行基本身份验证。
use Psr\Http\Message\RequestInterface; use \PFlorek\BasicAuth\BasicAuth; $credentials = new Credentials('Alladin, 'open sesame'); $request = $this->basicAuth->addCredentials($request, $credentials); var_dump($request->getHeaderLine('WWW-Authenticate')); //string(34) "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
添加挑战
将具有域名的挑战添加到PSR-7响应接口进行基本身份验证。
use Psr\Http\Message\ResponseInterface; use \PFlorek\BasicAuth\BasicAuth; $response = $this->basicAuth->addChallenge($response, 'WallyWorld); var_dump($response->getHeaderLine('WWW-Authenticate')); //string(24) "Basic realm=\"WallyWorld\"" var_dump($response->getStatusCode()); //int(401)
安装
使用Composer安装包
composer require pflorek/php-basic-auth
作者
贡献
总是欢迎贡献!
许可
此包的所有内容均受MIT许可许可。