Maison > cadre php > Laravel > le corps du texte

laravel implémente la connexion côté application

王林
Libérer: 2023-05-26 11:43:07
original
983 Les gens l'ont consulté

Avec le nombre croissant d'applications pour smartphones, la demande de développement d'applications mobiles augmente de jour en jour. La connexion des utilisateurs est devenue l'une des fonctions très importantes des applications mobiles, car la connexion des utilisateurs peut non seulement protéger la sécurité des informations des utilisateurs, mais également. faciliter la connexion des utilisateurs à différents moments. Accédez rapidement à leurs informations sur leurs appareils. Laravel est un framework PHP populaire qui fournit de nombreuses fonctions intégrées et packages d'extension pour aider les développeurs à implémenter diverses fonctions de l'application, y compris la fonction de connexion côté APP. Cet article explique comment utiliser Laravel pour implémenter la fonction de connexion APP.

1. Installation et configuration de Laravel

Avant de commencer à implémenter la fonction de connexion APP dans Laravel, vous devez installer et configurer l'environnement Laravel. Tout d'abord, assurez-vous d'avoir installé l'outil Composer (https://getcomposer.org/). Ensuite, exécutez la commande suivante pour installer Laravel sur votre ordinateur.

composer create-project --prefer-dist laravel/laravel myapp
Copier après la connexion

où "myapp" est le nom de l'application Laravel que vous souhaitez créer.

Une fois l'installation terminée, vous pouvez entrer dans le répertoire myapp et exécuter la commande suivante pour démarrer un serveur de développement local.

php artisan serve
Copier après la connexion

Visitez http://localhost:8000 pour voir la page d'accueil de Laravel. Ensuite, vous devez installer et configurer le package d'extension Passport pour prendre en charge la fonction de connexion côté APP.

Exécutez la commande suivante pour installer le pack d'extension Passport :

composer require laravel/passport
Copier après la connexion

Une fois l'installation terminée, exécutez la commande suivante pour générer les clés Passport nécessaires :

php artisan passport:keys
Copier après la connexion

Ensuite, exécutez la commande suivante pour générer la migration de la base de données Passport :

php artisan migrate
Copier après la connexion

II. Implémentez la fonction de connexion côté application

  1. Créer un modèle utilisateur et un contrôleur

Tout d'abord, vous devez créer un modèle utilisateur afin que l'application puisse gérer les utilisateurs. Exécutez la commande suivante pour créer un modèle nommé User :

php artisan make:model User
Copier après la connexion

Ensuite, créez un contrôleur nommé AuthController et ajoutez-y le code suivant :

<?php

namespace AppHttpControllers;

use AppModelsUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use Validator;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json(['error' => $validator->errors()], 401);
        }

        $user = new User;
        $user->name = $request->name;
        $user->email = $request->email;
        $user->password = bcrypt($request->password);
        $user->save();

        $token = $user->createToken('MyApp')->accessToken;

        return response()->json(['token' => $token], 200);
    }

    public function login(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'email' => 'required|email',
            'password' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json(['error' => $validator->errors()], 401);
        }

        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            $user = Auth::user();
            $token = $user->createToken('MyApp')->accessToken;
            return response()->json(['token' => $token], 200);
        } else {
            return response()->json(['error' => 'Unauthorized'], 401);
        }
    }
}
Copier après la connexion

Dans le code ci-dessus, la méthode de registre permet à l'utilisateur de s'inscrire, la méthode de connexion permet l'utilisateur à se connecter. Si l'utilisateur s'inscrit ou se connecte avec succès, un jeton d'accès est renvoyé et est utilisé pour les demandes utilisateur ultérieures.

  1. Créer des routes API

Ensuite, vous devez créer des routes API correspondantes pour gérer les demandes de connexion et d'enregistrement des utilisateurs. Dans le fichier routes/api.php, ajoutez le code suivant :

<?php

use IlluminateHttpRequest;
use IlluminateSupportFacadesRoute;
use AppHttpControllersAuthController;

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
Copier après la connexion

Le code ci-dessus mappe les demandes d'enregistrement et de connexion aux méthodes correspondantes dans le contrôleur AuthController.

3. Testez la fonction de connexion

Maintenant que tout le code est prêt, vous pouvez tester les fonctions de connexion et d'enregistrement en accédant à l'url suivante.

  • POST /api/register

    • Enregistrez un nouvel utilisateur. Paramètres : nom, email, mot de passe.
  • POST /api/login

    • pour la connexion de l'utilisateur. Paramètres : email, mot de passe.

Lorsque l'utilisateur se connecte avec succès, un jeton sera renvoyé. Ce jeton peut être utilisé pour effectuer des requêtes API ultérieures afin d'authentifier l'utilisateur.

$token = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZlYTcwMDU3NzhlZWUyMTU3MzliNTM3ODQyNTI0NWJiMGM5YjA3ZWIyMWNlMDhhMDM5ODUyYjczMzVjNWE1NjJlN2UwMGU4ZTQ5MjhhNzg1In0.eyJhdWQiOiIxMSIsImp0aSI6ImZlYTcwMDU3NzhlZWUyMTU3MzliNTM3ODQyNTI0NWJiMGM5YjA3ZWIyMWNlMDhhMDM5ODUyYjczMzVjNWE1NjJlN2UwMGU4ZTQ5MjhhNzg1IiwiaWF0IjoxNjMwMzkwNTM3LCJuYmYiOjE2MzAzOTA1MzcsImV4cCI6MTYzMDM5NDAzNywiZGF0YSI6eyJ1c2VyIjp7ImlkIjoiMSJ9fX0.XsIFsVCc3N1oZ70vzWn4wHQSv3Q-JVdlfu4LJkUPL0he_53bpgJrq5jw8mHygB-1-kpq62N7eG_r08fXKkmbiqeITmUiaGKa0prKzXCoexuYKuxYqG8j-HY2UyDp5g_TE6M4eW5FrcDpTJ0WcQ5ShDhdszUFQUH_qR52ypeEUmsF6CFwx1YJt4AmCFEy2CjsKOMl9K9o0mV_ytvBZ9drY6w6HTRfYfU7q5yuM-W3Qp6bbS-ljzY_2M0RWzwZJm6QvO3Byjhw1TNUrPHFs6xGlY4M7zgkDZxas5srQgpFjKof2LztN7QAJaiT_d6XAKpS24JA2-v2U7x3g';
$response = $this->withHeaders([
    'Authorization' => $token,
])->json('GET', '/api/user');
Copier après la connexion

Dans cet exemple, utilisez token pour envoyer une requête GET à /api/user, qui renverra les informations de l'utilisateur. Si la connexion échoue, l'API renvoie un code d'erreur 401. Si la connexion réussit, les informations de l'utilisateur seront renvoyées.

Il est très simple d'utiliser le package d'extension Passport dans Laravel pour implémenter la fonction de connexion côté APP. Il vous suffit d'installer et de configurer le package d'extension correspondant. Dans cet article, nous montrons comment utiliser Laravel pour compléter une fonction de connexion complète côté application, obtenant ainsi une connexion rapide et une protection de sécurité pour les utilisateurs.

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!

source:php.cn
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