Я в своем последнем проекте сделал просто. При обращении к 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