Как я могу заставить свое промежуточное программное обеспечение отвечать объектом json, если я использую маршрут API - PullRequest
2 голосов
/ 16 января 2020

Я создаю свой первый API с Laravel и использую JWT для аутентификации. Я пока не очень хорошо понимаю охранников, но думаю, что мне удалось защитить свой класс User. Поэтому, когда я пытаюсь достичь маршрута в моем UserController, он защищается, и промежуточное программное обеспечение Authenticate вызывается, если пользователь не аутентифицирован. Проблема в том, что когда я пытаюсь использовать маршрут API через Почтальон, я получаю следующую ошибку

ErrorException: заголовок может содержать не более одного заголовка, новая строка обнаружена в файле

namespace App\Http\Middleware;

use Illuminate\Auth\Middleware\Authenticate as Middleware;

class Authenticate extends Middleware
{
    protected function redirectTo($request)
    {
         if (!$request->expectsJson()) {
            return response()->json(['message' => 'Unauthorized'], 403);
         }
    }
}

api. php

<?php
use Illuminate\Support\Facades\Route;

Route::post('register', 'AuthController@register');
Route::get('user/{id}', 'UserController@index');

Ответы [ 2 ]

1 голос
/ 16 января 2020

Вы можете использовать:

abort(response()->json('Unauthorized', 403));
1 голос
/ 16 января 2020

Попробуйте это

Route::group(['middleware' => 'auth:api'], function(){
// Put your authenticated routes here
});
...