Установить область Laravel Basic Auth?

Когда вы используете базовый фильтр авторизации в Laravel 4.2, я заметил, что вы не можете установить realm (может быть, только я?) для аутентификации, и поэтому, когда появляется окно авторизации, оно выглядит так в Internet Explorer:

введите описание изображения здесь

Взгляните на пример официальной документации: http://php.net/manual/en/features.http-auth.php#example-372

Если бы я использовал это, вышеупомянутое окно входа в систему скажет Restricted area скорее, чем null,

Любая идея, как установить область базовой аутентификации в Laravel?

Кроме того, как или где вы устанавливаете / стилизуете текст, который будет отображаться при сбое аутентификации или при нажатии пользователем кнопки отмены?

1

Решение

Нашел это, но ничего не расстроил.

header('WWW-Authenticate: Basic realm="REALM"');
header('HTTP/1.0 401 Unauthorized');
0

Другие решения

Используйте следующий фильтр маршрута:

Route::filter('auth.basic', function() {
$response = Auth::basic();

if (!is_null($response)) {
return $response->header("WWW-Authenticate", 'Basic realm="REALM"');
}
});

Адаптированы из этот ответ который объясняет, как это работает в деталях; в принципе Auth::basic() либо возвращает null если пользователь уже аутентифицирован или 401 Unauthorized ответ с WWW-Authenticate заголовок, если ответ не нулевой, мы называем header метод на этом Response заменить этот заголовок нашей пользовательской версией WWWi-Authenticate в том числе realm параметр; если вы посмотрите на этот метод, вы заметите, что он по умолчанию заменяет любые предыдущие заголовки.

Наконец, возвращаемое значение этого метода — сам объект ответа, поэтому мы можем вернуть его вместо явного возврата $response на новой линии.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector