web-dev-qa-db-fra.com

Comment obtenir un jeton porteur à partir d'une demande à Laravel

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.

4
user7175325

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).

21
Barnabas Kecskes

Vous pouvez faire quelque chose comme:

$response = explode(':', $request->header('Authorization'));
$token = trim($response[2]);
0
Raza Mehdi

si vous utilisez auth: api n’a pas besoin de définir le nom de la garde

\Auth::guard('api')->getTokenForRequest();
0
the_hasanov