Переопределить перенаправление авторизации apis url в laravel с помощью паспортной системы авторизации - PullRequest
0 голосов
/ 27 мая 2018

Я создал несколько API, которые отлично работают.Теперь, когда кто-то нажимает на защищенный URL-адрес apis, получивший запрос get в веб-браузере, он перенаправляет на страницу входа в систему авторизации.Как я могу переопределить эту функциональность?

Полная информация

Я работаю в приложении Laravel, в котором реализована система паспортов и авторизации.Этот проект не имеет веб-интерфейса до настоящего времени.Это мой api.php

Route::group(['middleware' => ['auth:api'],'namespace' => 'Api', 'prefix' => '/v1'], function () {
    Route::get('/user/profile', 'UserController@profile');
    Route::get('/logout', 'Auth\LoginController@logout');
});
Route::group(['middleware' => ['api'], 'namespace' => 'Api', 'prefix' => '/v1'], function () {
    Route::post('/auth/register', 'Auth\RegisterController@create');
    Route::post('/auth/login', 'Auth\LoginController@login');
    Route::post('/auth/password/email', 'Auth\ForgotPasswordController@getResetToken');
    Route::post('/auth/password/reset', 'Auth\ResetPasswordController@reset');
});

, и это мой web.php

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Когда я нажимаю

{{site_url}} / api/ v1 / user / profile

без передачи или с неверным токеном доступа в почтальоне, затем возвращается следующая ошибка ( все в порядке ).

{"status":"fail","success":0,"error":401,"message":"Invalid Token!"}

Но когда я нажимаю этот URL в веб-браузере, он перенаправляет меня на страницу входа.

1 Ответ

0 голосов
/ 27 мая 2018

Я решил эту проблему, добавив эти функции в /app/Exceptions/Handler.php:

public function unauthenticated($request, AuthenticationException $exception){
    if($request->expectsJson()){
        return response()->json('Please login',401);
    }
    return redirect()->guest('admin/login');
}

public function unauthorized($request, AuthorizationException $exception){
    if($request->expectsJson()){
        return response()->json("You don't have permission to do this",401);
    }
    return redirect()->guest('login');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...