<?php
$authTokens = $client->request($uri)->getHeader('WWW-Authenticate')[0];
$explode = explode(',', $authTokens);
$realm = rtrim(str_replace('Digest realm="', '', $explode[0]), '"');
$qop = rtrim(str_replace('quo="', '', $explode[1]), '"');
$nonce = rtrim(str_replace('nonce="', '', $explode[2]), '"');
$cnonce = md5(uniqid());
$nc = $key;
$A1 = md5(sprintf("%s:%s:%s", $config['auth']['username'], $realm, $config['auth']['password']));
$A2 = md5(sprintf("%s:%s", 'GET', $uri));
$hash = md5(sprintf("%s:%s:%s:%s:%s:%s", $A1, $nonce, $nc, $cnonce, $qop, $A2));
$response = md5(sprintf(
'Digest nonce="%s",nc="%s",cnonce="%s",qop="%s",username="%s",uri="%s",response="%s"',
$nonce, $nc, $cnonce, $qop, $config['auth']['username'], $uri, $hash
));
$request->setAllHeaders(['Authorization' => $response]);
preferences:
36.48 ms | 402 KiB | 5 Q