Maison développement back-end tutoriel php Comment utiliser PHP pour une connexion de base sans mot de passe

Comment utiliser PHP pour une connexion de base sans mot de passe

Jun 22, 2023 am 08:01 AM
php登录认证 免密登录实现 简单认证编程

Dans le développement d'applications Web, la connexion sans mot de passe (Remember Me) est une fonction très courante. Elle permet aux utilisateurs de rester connectés pendant une longue période sans avoir à saisir à chaque fois leur numéro de compte et leur mot de passe. En tant que langage de développement Web populaire, PHP propose des moyens simples d'atteindre cette fonction. Cet article explique comment utiliser PHP pour une connexion de base sans mot de passe.

  1. Set Cookie

En PHP, nous pouvons utiliser la fonction setcookie() pour définir un cookie Lorsque l'utilisateur choisit de se connecter sans mot de passe, nous pouvons définir un cookie pour enregistrer le statut de connexion de l'utilisateur une fois que l'utilisateur s'est connecté. avec succès. Voici un exemple de code :

// 设置cookie
setcookie('remember_me', '1', time() + 86400 * 7);
Copier après la connexion

Dans le code ci-dessus, nous avons défini un cookie nommé « remember_me » avec une valeur de « 1 » et une période de validité de 7 jours. De cette façon, lors de la prochaine visite de l'utilisateur sur le site Web, nous pouvons vérifier si « remember_me » existe dans le cookie afin de déterminer si l'utilisateur a choisi de se connecter sans mot de passe.

  1. Vérification des cookies

Chaque fois qu'un utilisateur visite le site Web, nous devons vérifier si « remember_me » existe dans le cookie pour vérifier si l'utilisateur est connecté. Voici un exemple de code :

// 检查cookie
if (isset($_COOKIE['remember_me'])) {
    // 用户已登录
} else {
    // 用户未登录
}
Copier après la connexion

Dans le code ci-dessus, nous déterminons si l'utilisateur est connecté en vérifiant si $_COOKIE['remember_me'] existe, afin d'afficher la page appropriée à l'utilisateur.

  1. Gardez l'utilisateur connecté

Lorsque l'utilisateur choisit de se connecter sans mot de passe, nous devons enregistrer le statut de connexion de l'utilisateur afin que l'utilisateur n'ait pas besoin de saisir à nouveau le compte et le mot de passe pendant un certain temps. Habituellement, nous pouvons enregistrer un « remember_token » dans la base de données lorsque l'utilisateur se connecte et le stocker dans un cookie. Voici un exemple de code :

// 生成remember_token
$remember_token = md5(uniqid(rand(), true));

// 保存remember_token到数据库
$query = "UPDATE users SET remember_token = '{$remember_token}' WHERE id = '{$user_id}'";
mysqli_query($conn, $query);

// 设置cookie
setcookie('remember_token', $remember_token, time() + 86400 * 7);
Copier après la connexion

Dans le code ci-dessus, nous générons un Remember_token unique et l'enregistrons dans la base de données. Nous enregistrons ensuite le jeton mémorisé dans le cookie de l'utilisateur.

  1. Restaurer le statut de connexion de l'utilisateur

Lorsque l'utilisateur visite à nouveau le site Web, nous devons vérifier si Remember_token existe dans le cookie et trouver l'utilisateur correspondant dans la base de données. Si l'utilisateur est trouvé, il est défini sur le statut connecté. Voici un exemple de code :

// 检查cookie中的remember_token
if (isset($_COOKIE['remember_token'])) {
    // 查询数据库中匹配的用户
    $query = "SELECT * FROM users WHERE remember_token = '{$_COOKIE['remember_token']}'";
    $result = mysqli_query($conn, $query);
    $user = mysqli_fetch_assoc($result);

    // 如果找到用户,则将用户设置为已登录状态
    if ($user) {
        $_SESSION['user_id'] = $user['id'];
        // 更新remember_token,防止被恶意利用
        $new_remember_token = md5(uniqid(rand(), true));
        $query = "UPDATE users SET remember_token = '{$new_remember_token}' WHERE id = '{$user['id']}'";
        mysqli_query($conn, $query);
        // 更新cookie
        setcookie('remember_token', $new_remember_token, time() + 86400 * 7);
    }
}
Copier après la connexion

Dans le code ci-dessus, nous vérifions le Remember_token dans le cookie et trouvons les utilisateurs correspondants dans la base de données. Si un utilisateur est trouvé, nous configurons l'utilisateur comme étant connecté et mettons à jour le Remember_token pour éviter toute exploitation malveillante.

Résumé

Dans cet article, nous avons présenté comment utiliser PHP pour une connexion de base sans mot de passe. Il s'agit d'une fonctionnalité d'application Web très courante et des précautions doivent être prises pour garantir la sécurité et la légalité lors de sa mise en œuvre. Nous recommandons aux lecteurs de se référer à cet article lors de sa mise en œuvre, mais de procéder aux modifications et ajustements appropriés en fonction de la situation spécifique.

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

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) 11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium) Mar 03, 2025 am 10:49 AM

11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)

Travailler avec les données de session Flash dans Laravel Travailler avec les données de session Flash dans Laravel Mar 12, 2025 pm 05:08 PM

Travailler avec les données de session Flash dans Laravel

Introduction à l'API Instagram Introduction à l'API Instagram Mar 02, 2025 am 09:32 AM

Introduction à l'API Instagram

Misque de réponse HTTP simplifié dans les tests Laravel Misque de réponse HTTP simplifié dans les tests Laravel Mar 12, 2025 pm 05:09 PM

Misque de réponse HTTP simplifié dans les tests Laravel

Construisez une application React avec un Laravel Back End: Partie 2, React Construisez une application React avec un Laravel Back End: Partie 2, React Mar 04, 2025 am 09:33 AM

Construisez une application React avec un Laravel Back End: Partie 2, React

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST Mar 14, 2025 am 11:42 AM

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API REST

12 meilleurs scripts de chat PHP sur Codecanyon 12 meilleurs scripts de chat PHP sur Codecanyon Mar 13, 2025 pm 12:08 PM

12 meilleurs scripts de chat PHP sur Codecanyon

Notifications à Laravel Notifications à Laravel Mar 04, 2025 am 09:22 AM

Notifications à Laravel

See all articles