Ответы пользователя по тегу API
  • Как правильно в Laravel сделать авторизацию по токену для API?

    ischerbin
    @ischerbin
    *nix админ увлекающийся программированием
    Я в своем последнем проекте сделал просто. При обращении к API необходимо передавать token в заголовке, в поле X-Auth-Token. Реализация простая. Пишем middleware:
    <?php
    
    namespace App\Http\Middleware;
    
    use App\AuthToken;
    use Closure;
    
    class TokenAuth
    {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            $_auth_token = $request->header('X-Auth-Token', null);
    
            if ($_auth_token)
            {
                $_token = AuthToken::find($_auth_token);
                if (!$_token)
                    abort('401', 'No such token. Request a new one.');
            }
            else
                abort('401', 'No auth token provided');
    
            return $next($request);
        }
    }

    Потом в Kernel.php подключаем:
    'token' => \App\Http\Middleware\TokenAuth::class,
    И все работает. Получение токена сделано через POST запрос /api/token. Как это реализовать и затем хранить решайте сами.
    Версия Laravel 5.4
    Ответ написан
    Комментировать