J'attends un jeton JWT de toutes les demandes entrantes et il devrait être inclus dans les en-têtes de demande tels que: Authorization => 'Bearer: some token here'
Je veux obtenir ce jeton et le vérifier: voici ce que j'essaie:
$token = $request->header('Authorization');
et voici ce que je reçois:
"Authorization: Bearer: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJleGFtcGxlLm9yZyIsImF1ZCI6ImV4YW1wbGUuY29tIiwiaWF0IjoxMzU2OTk5NTI0LCJuYmYiOjEzNTcwMDAwMDB9.UQUJV7KmNWPiwiVFAqr4Kx6O6yd69lfbtyWF8qa8iMN2dpZZ1t6xaF8HUmY46y9pZN76f5UMGA0p_CMqymRdYfNiKsiTd2V_3Qpt9LObaLg6rq18j3GLHfdr8nyBzO3v7gTpmNaU6Xy47aMDsbcs593Lx_lD3PnO41oEHgih7CsRKW1WcW1radnpEhdDO7-GpmGOF6xUnpAlQ9EHqpqnIlZPbVoJg92Iwozn-07uuWrkyKUpYN4IPpstd1ks3cKlJ6FH-2ROiC4N0MVLxp4lhUyKhLdwgDWYH4tjtdrEVK0a3_zVtK1ukvriEJqMkfYHnE6Bwv_pv_-lRNy_y7m-YQ"
La question est-il un moyen de ne saisir que le jeton ne comprenant pas "Authorization: Bearer"
et bien sûr, je pourrais analyser la chaîne entière et obtenir le jeton, mais je me demande simplement s'il existe un autre moyen de l'obtenir sans analyse.
Il y a une méthode bearerToken()
sur l'objet Illuminate\Http\Request
, vous devriez donc pouvoir faire $token = $request->bearerToken();
et récupérer ce que vous attendez (c'est dans Laravel 5.5 - je ne suis pas sûr des versions précédentes).
Vous pouvez faire quelque chose comme:
$response = explode(':', $request->header('Authorization'));
$token = trim($response[2]);
si vous utilisez auth: api n’a pas besoin de définir le nom de la garde
\Auth::guard('api')->getTokenForRequest();