想通了,貌似我不得不創建自定義的中間件來處理這個問題。 請注意,當從我的瀏覽器調用我的API時,只有從郵遞員這樣的工具調用API時,此解決方案才起作用。出於某種原因,當從我的瀏覽器中調用它時,我總是在看到基本身份驗證提示之前出現錯誤。
在我的控制,我改變了中間件到我的新創建的一個:
$this->middleware('custom');
在內核添加我的位置吧:
protected $routeMiddleware = [
'auth.basic.once' => \App\Http\Middleware\Custom::class,
]
然後,我創建的中間件。我使用無狀態基本身份驗證,因爲我創建了一個API:
<?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();
}
}