pflorek/php-basic-auth

提供一个简单的方法来获取或设置PSR-7 `RequestInterface`上的凭据(用户名、密码)。它还通过向PSR-7 `ResponseInterface`添加带有状态码401的'WWW-authenticate'头部行来帮助挑战未经授权的客户端。

1.0.1 2018-11-16 00:00 UTC

This package is auto-updated.

Last update: 2024-09-17 09:26:29 UTC


README

Build Status Coverage Status Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads composer.lock

此库提供了一个简单的方法来获取或设置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许可许可。