Maison >développement back-end >tutoriel php >Authentification de sécurité PHP avec Lumen Passport

Authentification de sécurité PHP avec Lumen Passport

WBOY
WBOYoriginal
2023-07-25 13:34:451776parcourir

Vérification de la sécurité PHP via Lumen Passport

Lors du développement d'applications Web, l'authentification des utilisateurs et le contrôle des autorisations sont des aspects importants qui ne peuvent être ignorés. Pour garantir la sécurité de l'application, nous devons implémenter une méthode pour authentifier les utilisateurs et accorder différentes autorisations à des utilisateurs spécifiques. Dans le développement PHP, Lumen est un framework léger et efficace qui peut nous aider à créer rapidement des applications Web. Lumen Passport est une extension Lumen basée sur Laravel Passport, qui peut nous aider à mettre en œuvre une authentification simple et puissante.

Cet article expliquera comment mettre en œuvre la vérification de sécurité PHP via Lumen Passport pour garantir que notre application autorise uniquement l'accès aux utilisateurs autorisés.

Tout d’abord, nous devons installer le package d’extension Lumen Passport. Entrez le répertoire racine du projet dans le terminal et exécutez la commande suivante :

composer require dusterio/lumen-passport

Une fois l'installation terminée, nous devons enregistrer le fournisseur de services Passport. Ouvrez le fichier bootstrap/app.php et ajoutez le code suivant dans la section Enregistrer les fournisseurs de services : bootstrap/app.php 文件,在 Register Service Providers 部分添加以下代码:

$app->register(DusterioLumenPassportPassportServiceProvider::class);

然后,在 bootstrap/app.php 的开头添加以下引用:

use DusterioLumenPassportLumenPassport;

接下来,我们需要生成密钥和数据库迁移文件。在终端中运行以下命令:

php artisan passport:keys
php artisan passport:client --password
php artisan migrate

生成密钥和数据库迁移文件后,我们可以开始配置身份验证。

首先,打开 config/auth.php 文件,将默认驱动从 token 更改为 passport

'defaults' => [
    'guard' => 'api',
    'passwords' => 'users',
    'provider' => 'users',
    'hash' => false,
],

// ...

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

然后,打开 app/Providers/AuthServiceProvider.php 文件,并将 LaravelPassportPassport::routes() 方法添加到 boot() 方法中:

use LaravelPassportPassport;

// ...

public function boot()
{
    $this->registerPolicies();

    Passport::routes();
}

接下来,我们需要在用户模型中使用 Passport。打开 app/User.php 文件,并在类顶部添加以下引用:

use LaravelPassportHasApiTokens;

然后,将 HasApiTokens trait 添加到 User 类中:

use LaravelPassportHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
    
    // ...
}

现在,我们已经完成了身份验证的配置。接下来,让我们来看一下如何在控制器中使用 Lumen Passport。

首先,我们需要在控制器中使用 Passport。打开你的控制器文件,并在类顶部添加以下引用:

use LaravelPassportPassport;

然后,在需要进行身份验证的方法中调用 Passport::actingAs() 方法。此方法接受一个用户模型实例作为参数,用于模拟用户登录:

public function login()
{
    $user = User::find(1); // 通过用户 ID 获取用户
    Passport::actingAs($user);
    
    // ...
}

当用户登录后,Lumen Passport 会生成一个访问令牌,我们可以使用该令牌来进行接口调用。在需要验证用户身份的方法中,我们可以使用 auth()->user() 来获取当前已登录的用户实例:

public function profile()
{
    $user = auth()->user();
    
    return response()->json([
        'user' => $user,
    ]);
}

通过上述步骤,我们已经成功通过 Lumen Passport 实现了 PHP 安全验证。现在我们可以在应用程序中使用身份验证来保护特定的路由和功能,以确保只有授权的用户可以访问。

总结:

本文介绍了如何通过 Lumen Passport 实现 PHP 安全验证。我们首先安装了 Lumen Passport 扩展包,并生成了密钥和数据库迁移文件。然后,我们通过更改配置和使用 Passport 方法来配置身份验证。最后,在控制器中使用 Passportrrreee

Ensuite, dans bootstrap/app.php code> Ajoutez la citation suivante au début : 🎜rrreee🎜 Ensuite, nous devons générer les fichiers de migration de clé et de base de données. Exécutez la commande suivante dans le terminal : 🎜rrreee🎜Après avoir généré les fichiers de migration de clé et de base de données, nous pouvons commencer à configurer l'authentification. 🎜🎜Tout d'abord, ouvrez le fichier <code>config/auth.php et changez le pilote par défaut de token à passport : 🎜rrreee🎜Ensuite, ouvrez le app/Providers/AuthServiceProvider.php et ajoutez la méthode LaravelPassportPassport::routes() à la méthode boot() : 🎜rrreee🎜Suivant , nous devons utiliser Passport dans le modèle utilisateur. Ouvrez le fichier app/User.php et ajoutez la référence suivante en haut de la classe : 🎜rrreee🎜 Ensuite, ajoutez le trait HasApiTokens au User class :🎜rrreee🎜Maintenant, nous avons terminé la configuration de l'authentification. Voyons ensuite comment utiliser Lumen Passport dans un contrôleur. 🎜🎜Tout d'abord, nous devons utiliser <code>Passport dans le contrôleur. Ouvrez votre fichier de contrôleur et ajoutez la référence suivante en haut de la classe : 🎜rrreee🎜 Ensuite, appelez la méthode Passport::actingAs() dans la méthode qui nécessite une authentification. Cette méthode accepte une instance de modèle utilisateur comme paramètre pour simuler la connexion de l'utilisateur : 🎜rrreee🎜 Lorsque l'utilisateur se connectera, Lumen Passport générera un jeton d'accès, que nous pourrons utiliser pour effectuer des appels d'interface. Dans les méthodes qui nécessitent une authentification de l'utilisateur, nous pouvons utiliser auth()->user() pour obtenir l'instance d'utilisateur actuellement connecté : 🎜rrreee🎜Grâce aux étapes ci-dessus, nous avons réussi Lumen Passport Implémentation de la vérification de sécurité PHP. Nous pouvons désormais utiliser l'authentification dans notre application pour sécuriser des itinéraires et des fonctionnalités spécifiques afin de garantir que seuls les utilisateurs autorisés y ont accès. 🎜🎜Résumé : 🎜🎜Cet article présente comment implémenter la vérification de sécurité PHP via Lumen Passport. Nous avons d'abord installé le package d'extension Lumen Passport et généré les fichiers de migration de clé et de base de données. Nous configurons ensuite l'authentification en modifiant la configuration et en utilisant la méthode Passport. Enfin, en utilisant la classe Passport dans le contrôleur, nous pouvons implémenter la connexion utilisateur et la génération de jetons d'accès. De cette manière simple et puissante, nous pouvons facilement mettre en œuvre l’authentification des utilisateurs et le contrôle des autorisations pour protéger la sécurité de nos applications. 🎜

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!

Déclaration:
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