Uso o Laravel Sanctum, super simples. Crio uma rota para criar tokens e as outras rotas da aplicação ficam protegidas por um middleware. Dessa forma é só passar o token por bearer token na requisição e o Sanctum faz todo o resto (não precisa ficar comparando, além da falha de segurança, é claro), não é porque é só pra um cliente que você vai fazer de qualquer jeito né? Isso aí pode crescer um dia e você já deixa tudo prontinho pra escalar.
Exemplo:
// Rota create tokens
Route::post('/tokens/create', function (Request $request) {
// Aqui eu posso fazer validação de login e daí crio um token pro usuário autenticado
$token = $request->user()->createToken('auth');
// response
return response()->json(['token' => $token->plainTextToken]);
});
// Grupo de rotas protegidas
Route::middleware(['auth:sanctum'])->group(function(){
// Rota produtos
Route::get('/produtos', function (Request $request) {
// response
return response()->json(['produtos' => Produto::all()]);
});
}); // grupo
Simples assim. Dá pra melhorar um montão ainda, Laravel é show de bola.