Maison > cadre php > Laravel > Comment Laravel utilise ApiToken pour authentifier les requêtes

Comment Laravel utilise ApiToken pour authentifier les requêtes

藏色散人
Libérer: 2020-06-06 14:40:55
avant
3649 Les gens l'ont consulté

La colonne tutorielle suivante de Laravel Getting Started vous présentera comment utiliser la demande d'authentification ApiToken dans Laravel. J'espère qu'elle sera utile aux amis qui en ont besoin !

Comment Laravel utilise ApiToken pour authentifier les requêtes

1. Ouvrez le fichier de migration database/migrations/2014_10_12_000000_create_users_table.php, nous devons changer la structure de la table utilisateur

2. ajoutez le champ api_token, c'est-à-dire que notre jeton est enregistré dans la base de données. À l'emplacement approprié, ajoutez une ligne

$table->string('api_token', 60)->unique();
Copier après la connexion

3. Configurez la base de données et générez la table utilisateur

via le. Commande php artisan migrate 4. Dans la table utilisateur, ajoutez un enregistrement à volonté, tant que le champ api_token est défini sur 123456. De cette façon, nous générons un utilisateur et nous pouvons utiliser la valeur du jeton 123456 pour nous connecter plus tard.

5. Retournez au fichier de routage routes.php, ajoutez-y une route de test et protégez-la avec le middleware laravel

Route::group(['middleware' => ['auth.api']], function () { 
  Route::get('/t', function () {
      return 'ok';
  });
});
Copier après la connexion

Ici, le middleware auth.api est utilisé, et le middleware définition Entrez l'image ci-dessous :

Comment Laravel utilise ApiToken pour authentifier les requêtes

Créez WebToken.php dans le fichier Middleware, puis enregistrez le middleware dans le fichier Kernel.php

'auth.api' => \App\Http\Middleware\webToken::class,
Copier après la connexion

6. Ouvrez le code middleware webToken que vous venez de créer est le suivant

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class webToken
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::guard(&#39;api&#39;)->guest()) {
            return response()->json([&#39;code&#39; => 401,&#39;msg&#39; => &#39;未设置token&#39;]);
        }
        return $next($request);
    }
}
Copier après la connexion

L'API de Auth::guard('api') dans le code est le fichier auth.php dans le dossier de configuration

Comment Laravel utilise ApiToken pour authentifier les requêtes

Comment Laravel utilise ApiToken pour authentifier les requêtes

7. Après avoir effectué les modifications ci-dessus, lorsque nous faisons une requête directe au serveur avec le chemin URL /t, le serveur renverra une erreur 401 et un 'jeton non défini' Un tel message est ce que nous avons défini auparavant dans la méthode handle(). En d'autres termes, /t a été protégé par notre middleware d'authentification. Si nous voulons que notre requête passe normalement par ce middleware, nous devons fournir le jeton non défini. token .

8. Puisque nous avons précédemment ajouté une donnée avec api_token 123456 dans la table user, maintenant nous demandons à nouveau /t au serveur, mais cette fois nous ajoutons api_token, c'est-à-dire

…/t?api_token=123456
Copier après la connexion
.

Dans des circonstances normales, le serveur renvoie « ok », ce qui signifie que le middleware d'authentification autorise cette requête. Mais lorsque nous modifions 123456 par d'autres valeurs, cette requête ne peut pas transmettre le middleware d'authentification.

Pour plus d'articles techniques sur le framework Laravel, veuillez visiter le tutoriel laravel !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal