Laravel аутентификация токена API против веб-маршрута :: префикс ('api') - PullRequest
1 голос
/ 03 мая 2020

Мне интересно, как лучше использовать API с токеном или веб-маршрутизатор с префиксом: иметь токен, который меняется каждый раз, когда пользователь входит в систему. API:

Route::get('userdata/{key}', 'userController@show');

vs

Route::prefix('api')->group(function () {
Route::get('userdata', 'userController@show');
});

В веб-маршрутизаторе я могу использовать куки для проверки пользователя.

, какой из них лучше?

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Сгруппируйте все маршруты API и примените ваше собственное промежуточное ПО, которое будет проверять токен на предъявителя в заголовках запросов. Вот как это сделать:

Создать промежуточное ПО:

class AuthenticateWithToken
{
    public function handle($request, Closure $next)
    {
        $token = $request->bearerToken();
        if ($token==='valid') {
            return $next($request);
        }

        throw new Exception();
    }
}

Зарегистрируйте ваше промежуточное ПО в App \ Http \ Kernel. php:

class Kernel extends HttpKernel
{
    protected $routeMiddleware = [
        'authenticateWithToken' => AuthenticateWithToken::class
    ];
}

Применение промежуточного программного обеспечения на маршрутах:

Route::middleware('authenticateWithToken')
    ->prefix('api')
    ->group(function () {
        Route::get('/route1', 'YourController@action1');
        Route::get('/route2', 'YourController@action2');
    });
0 голосов
/ 03 мая 2020

Вам не нужно использовать какие-либо поля «ключ» или что-то еще в маршруте / теле, чтобы получить данные для зарегистрированного пользователя / пользователя сеанса. Вы можете создать маршрут stati c для получения «собственных данных» и извлечения данных текущего пользователя в соответствии с заголовком (носителем или чем-то другим) или файлами cookie.

Route::get('userdata', 'userController@show');

с печеньем / заголовком будет в порядке. Также не забудьте использовать промежуточное ПО для аутентификации, где вы должны проверить куки / заголовок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...