Maison  >  Article  >  développement back-end  >  Comment implémenter la connexion par vérification de l'application en php ? (exemple de code)

Comment implémenter la connexion par vérification de l'application en php ? (exemple de code)

PHPz
PHPzoriginal
2023-03-23 11:12:051553parcourir

PHP, en tant que langage de script côté serveur, peut interagir avec le front-end et fournir des fonctions de vérification de connexion pour les applications mobiles. Cet article explique comment implémenter la connexion par vérification d'application en PHP.

1. Connaissances pré-requises

  • Familiarisé avec les bases du langage PHP

  • Familiarisé avec les requêtes et réponses HTTP

  • Familiarisé avec le processus de connexion à l'APP mobile

2. Mise en œuvre processus

  1. Utilisateur demandant une connexion

APP lance une demande de connexion et doit envoyer le numéro de compte, le mot de passe et d'autres informations saisies par l'utilisateur au serveur.

  1. Le serveur reçoit la demande et traite les données

Après avoir reçu la demande, le serveur extrait le numéro de compte, le mot de passe et d'autres données saisies par l'utilisateur, et utilise une base de données (telle que MySQL) à des fins de comparaison et de vérification.

  1. Vérification de la base de données

En vous connectant à la base de données, extrayez les données du nom d'utilisateur et du mot de passe de la base de données, comparez les données saisies par l'utilisateur avec les données de la base de données, si la vérification est réussie, générez une session ou un jeton et d'autres informations, et envoyez-les comme résultat de réponse à l'application mobile.

  1. Vérification de l'APP

APP reçoit la session ou le jeton et d'autres informations renvoyées par le serveur, et les stocke dans le stockage local de l'appareil pour les demandes futures.

  1. Vérification de la demande

Lorsque l'APP envoie une demande au serveur, elle place les informations de session ou de jeton dans l'en-tête de la demande. Lorsque le serveur reçoit la demande, il vérifie la session ou le jeton. le résultat de la demande est renvoyé, sinon il est renvoyé Vérifiez le message d'erreur.

  1. Délai d'expiration de connexion

Afin de garantir la sécurité, le serveur doit limiter la période de validité des informations de connexion. Si l'utilisateur n'effectue aucune opération dans un délai donné, il doit se reconnecter et régénérer sa session ou son jeton. information.

3. Implémentation du code

Ce qui suit est un processus simple d'implémentation du code de vérification de connexion.

  1. Connexion à la base de données

Utilisez le langage PHP PDO (PHP Data Objects) pour la connexion et le fonctionnement de la base de données. Vous devez fournir l'adresse de l'hôte de la base de données, le nom d'utilisateur, le mot de passe et d'autres informations. Le code spécifique est le suivant :

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>
  1. . Vérification de l'utilisateur

Réussi La méthode POST obtient les données de compte et de mot de passe saisies par l'utilisateur, utilise des instructions préparées pour précompiler l'instruction de requête et demande si le nom d'utilisateur et le mot de passe correspondants existent dans la base de données. Si tel est le cas, les informations de réussite sont renvoyées. , sinon les informations d'échec sont renvoyées. Le code spécifique est le suivant :

<?php
// 验证用户输入数据
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  // 获取POST请求中的数据
  $username = $_POST["username"];
  $password = $_POST["password"];

  // 以预编译语句方式查询数据库中用户信息
  $stmt = $conn->prepare("SELECT * FROM users WHERE username=:username AND password=:password");
  $stmt->bindParam(':username', $username);
  $stmt->bindParam(':password', $password);
  $stmt->execute();

  $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
  $rows = $stmt->fetchAll();

  if (count($rows) > 0) {
    // 用户验证成功
    echo "Login successfully";
    // 将session或token等信息返回给移动端APP
    // 略
  } else {
    // 用户验证失败
    echo "Login failed";
  }
}
?>
  1. Vérification de la demande

Lors de la mise en œuvre de la vérification de la demande côté serveur, les informations de session ou de jeton doivent être retirées de l'en-tête de la demande pour vérifier sa validité. Le code spécifique est le suivant :

<?php
// 请求验证处理
if ($_SERVER["REQUEST_METHOD"] == "GET") {
  // 从请求头中获取session或token信息
  $token = $_SERVER[&#39;HTTP_TOKEN&#39;];

  // 判断session或token是否存在或已失效
  if (isset($_SESSION[&#39;token&#39;]) && $_SESSION[&#39;token&#39;] == $token) {
    // 请求验证成功
    echo "Request authorized";
    // 略
  } else {
    // 请求验证失败
    echo "Request unauthorized";
  }
}
?>

4. Résumé

Grâce à la mise en œuvre ci-dessus, nous pouvons vérifier efficacement la connexion à l'application mobile et assurer la sécurité des informations de l'utilisateur. Dans le développement réel, davantage de situations doivent être prises en compte, telles que les cookies et le cache client, la prise en charge multiplateforme, etc. Dans le même temps, nous devons également prendre en compte les problèmes de sécurité, tels que XSS, CSRF et autres méthodes d'attaque, et renforcer la protection de sécurité du code.

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