Maison  >  Article  >  développement back-end  >  Compréhension approfondie de PHP 401 Non autorisé et mécanisme d'autorisation

Compréhension approfondie de PHP 401 Non autorisé et mécanisme d'autorisation

WBOY
WBOYoriginal
2024-04-09 12:30:021124parcourir

L'erreur 401 Unauthorized en PHP signifie que la demande n'est pas autorisée, ce qui peut être dû à : 1. Le client n'a pas fourni les informations d'identification 2. Les informations d'identification ne sont pas valides 3. Le client n'a pas l'autorisation d'accéder à la ressource ; Pour empêcher tout accès non autorisé, PHP fournit des mécanismes d'autorisation, notamment : 1. Autorisation de base (authentification HTTP) ; 2. Autorisation par jeton (JWT/OAuth) ; 3. Session (stockage des informations utilisateur authentifiées).

深入理解 PHP 401 Unauthorized 及授权机制

Compréhension approfondie de PHP 401 Unauthorized et du mécanisme d'autorisation

Introduction

L'erreur 401 Unauthorized en PHP indique que la requête n'est pas autorisée. Cette erreur est généralement due à l'une des raisons suivantes :

  • Le client n'a pas fourni ses informations d'identification.
  • Les informations d'identification fournies ne sont pas valides.
  • Le client n'est pas autorisé à accéder à la ressource spécifiée.

Mécanisme d'autorisation

Pour empêcher tout accès non autorisé, PHP fournit une variété de mécanismes d'autorisation, notamment :

  • Autorisation de base : Utilisez le nom d'utilisateur et le mot de passe pour l'authentification HTTP.
  • Autorisation de jeton : Authentifiez-vous à l'aide de jetons Web JSON (JWT) ou de jetons OAuth 2.0.
  • Session : Utilisez la session PHP pour stocker les détails de l'utilisateur authentifié.

Cas pratique :

Supposons que nous ayons une application PHP et que nous devions protéger un fichier nommé "secret.php". Nous pouvons y parvenir en utilisant l'autorisation de base :

<?php

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW'])) {
    // 拒绝访问并显示错误消息
    header('HTTP/1.1 401 Unauthorized');
    exit;
}

// 验证凭据
if ($_SERVER['PHP_AUTH_USER'] != 'username' || $_SERVER['PHP_AUTH_PW'] != 'password') {
    // 验证失败
    header('HTTP/1.1 401 Unauthorized');
    exit;
}

// 允许访问
// ...

Remarque :

  • L'autorisation de base est un mécanisme d'autorisation simple et couramment utilisé, mais il est moins sécurisé car les informations d'identification sont transmises en texte clair.
  • Pour une option plus sécurisée, envisagez d'utiliser des jetons ou des sessions car ils ne transmettent pas d'informations d'identification.

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