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