Laravel/Lumen Shield Extension을 Http 인증에 사용합니다. 로컬 컴퓨터에서는 모든 것이 완벽하지만 우리 서버에만 문제가있었습니다.Http Auth가 PHP와 함께 작동하지 않습니다.
올바른 로그인 데이터를 제출하면 문제가 발생하여 로그인 화면이 다시 나타납니다. 내가 다른 로그인 데이터, 다른 브라우저를 시도, 로그인 화면이 반복해서 나타납니다. 나는 htaccess로/htpasswd가 사용하는 경우
는 HTTP 인증 프로세스가 작동 ...
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
하지만 난 단지 404 가지고 :
는 I가 마지막으로 확인 된 것은 내 htaccess로 변경했다 하지만이 문제를 PHP로 해결하고 싶습니다. 그리고 무엇보다 문제가 무엇인지 이해하고 싶습니다. 내 로컬 컴퓨터에, 이전이 코드 작업을
<?php
$realm = 'Geschützter Bereich';
// Benutzer => Passwort
$benutzer = array('admin' => 'mypass', 'gast' => 'gast');
if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Digest realm="' . $realm .
'",qop="auth",nonce="' . uniqid() . '",opaque="' . md5($realm) .
'"');
die('Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt');
}
// Analysieren der Variable PHP_AUTH_DIGEST
if (!($daten = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
!isset($benutzer[$daten['username']]))
die('Falsche Zugangsdaten!');
// Erzeugen einer gültigen Antwort
$A1 = md5($daten['username'] . ':' . $realm . ':' .
$benutzer[$daten['username']]);
$A2 = md5($_SERVER['REQUEST_METHOD'] . ':' . $daten['uri']);
$gueltige_antwort = md5($A1 . ':' . $daten['nonce'] . ':' . $daten['nc'] .
':' . $daten['cnonce'] . ':' . $daten['qop'] . ':' .
$A2);
if ($daten['response'] != $gueltige_antwort)
die('Falsche Zugangsdaten!');
// OK, gültige Benutzername & Passwort
echo 'Sie sind angemeldet als: ' . $daten['username'];
// Funktion zum analysieren der HTTP-Auth-Header
function http_digest_parse($txt) {
// gegen fehlende Daten schützen
$noetige_teile = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1,
'username'=>1, 'uri'=>1, 'response'=>1);
$daten = array();
$schluessel = implode('|', array_keys($noetige_teile));
preg_match_all('@(' . $schluessel . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@',
$txt, $treffer, PREG_SET_ORDER);
foreach ($treffer as $t) {
$daten[$t[1]] = $t[3] ? $t[3] : $t[4];
unset($noetige_teile[$t[1]]);
}
return $noetige_teile ? false : $daten;
}
?>
같은 상황,하지만 문제는 내 서버에 여전히 살아있다 :
는이 코드와 PHP의 HTTP 인증을 시도 문제를 제한합니다.환경에 대한 일부 정보 .. 지역
: 데비안 PHP 5.6 서버와 : 젠투 내가 루멘 5.1 대신 Laravel을 사용하는 프로젝트에 대한 PHP 5.6
와.