Задаване на област на Laravel Basic Auth?

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

въведете описание на изображението тук

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

Ако бях използвал това, в горния прозорец за влизане ще пише Restricted area, а не null.

Някаква идея как да зададете сферата на основното удостоверяване в Laravel?

Освен това, как или къде задавате/стилизирате текста, който да се показва, когато удостоверяването е неуспешно или потребителят натисне бутона за отказ?


person Latheesan    schedule 19.12.2014    source източник


Отговори (2)


Намерих това, но нищо ларавелско.

header('WWW-Authenticate: Basic realm="REALM"');
header('HTTP/1.0 401 Unauthorized');
person Will SxM    schedule 19.12.2014

Използвайте следния филтър за маршрут:

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 заглавка, ако отговорът не е null, извикваме header метод на този Response за замяна на тази заглавка с нашата персонализирана версия на WWWi-Authenticate, включително параметъра realm; ако погледнете този метод, ще забележите, че той е настроен да замества всички предишни заглавки по подразбиране.

Накрая върнатата стойност на този метод е самият обект на отговор, така че можем да го върнем вместо изрично да връщаме $response на нов ред.

person Community    schedule 19.12.2014