2016-09-07 2 views
0

Laravel 5에서 기본 인증이 실패한 경우 사용자에게 반환되는 기본 메시지는 "잘못된 자격 증명"오류 문자열입니다. 이 상황이 발생하면 사용자 지정 JSON 오류를 반환하려고합니다.Laravel 5 Basic Auth 사용자 지정 오류

반환 된 응답을 vendor/laravel/framework/src/Illuminate/Auth/SessionGuard.php 에서 편집 할 수 있지만 공급 업체 디렉토리 외부에서이 메시지의 동작을 어디에서 변경할 수 있는지는 알지 못했습니다. 방법이 있습니까? Laravel 4 Basic Auth custom error

답변

0

이 그것을 알아 냈 내가이 처리하는 사용자 정의 미들웨어를 작성했다처럼 보이는 :

는 Laravel 4를 통해이 작업을 수행하는 몇 가지 방법이 있었다처럼 보인다. 이 솔루션은 Postman과 같은 도구에서 호출 할 때만 브라우저에서 API를 호출 할 때 작동하지 않았습니다. 어떤 이유로 브라우저에서 호출 할 때 기본 인증 프롬프트를보기 전에 항상 오류가 발생합니다. 제 컨트롤러

는 내 새로 하나 생성에 미들웨어를 변경 :

$this->middleware('custom'); 

커널에서 난의 위치가 추가

protected $routeMiddleware = [ 
    'auth.basic.once' => \App\Http\Middleware\Custom::class, 
] 

그럼 I 미들웨어를 만들었다.

<?php 
namespace App\Http\Middleware; 

use Auth; 
use Closure; 
use Illuminate\Http\Request as HttpRequest; 
use App\Entities\CustomErrorResponse 
class Custom 
{ 
    public function __construct(CustomErrorResponse $customErrorResponse) { 
     $this->customErrorResponse = $customErrorResponse 
    } 
    public function handle($request, Closure $next) 
    { 
     $response = Auth::onceBasic(); 

     if (!$response) { 
      return $next($request); 
     } 
     return $this->customErrorResponse->send(); 
} 

}

: 내가 API를 만드는거야 이후는 상태 비 기본 인증을 사용