Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Js AJAX auth » : différence entre les versions

De The Linux Craftsman
Page créée avec « = Introduction = Le mécanisme ''Auth Basic'' consiste a faire passer le login et le mot de passe dans le header "Authorization" de la requête ''HTTP''. Le login et le m... »
 
Ligne 35 : Ligne 35 :
   }
   }
   if($login !== "toto" && $password !== "password"){
   if($login !== "toto" && $password !== "password"){
     // Identifiant faux, on retourne false et HTTP 401 : Unauthorized
     // Identifiants faux, on retourne false et HTTP 401 : Unauthorized
     http_response_code ( 401 );
     http_response_code ( 401 );
     echo json_encode ( false );  
     echo json_encode ( false );  
   }else{
   }else{
     // Identifiant ok, on retourne true et HTTP 202: Accepted
     // Identifiants ok, on retourne true et HTTP 202: Accepted
     http_response_code ( 202 );
     http_response_code ( 202 );
     echo json_encode ( true );
     echo json_encode ( true );

Version du 9 juin 2016 à 23:16

Introduction

Le mécanisme Auth Basic consiste a faire passer le login et le mot de passe dans le header "Authorization" de la requête HTTP.

Le login et le mot de passe sont ajoutés comme suit, login:password, puis encodé en base 64.

Par exemple, pour toto:password on aura le header suivant: Basic dG90bzpwYXNzd29yZA==

Coté Serveur

Nous allons gérer l'authentification en renvoyant le code 202 Accepted si l'authentification est correcte et 401 Authorization Required si elle échoue. Pour cela nous allons avoir besoin du code suivant dans le index.php :

<?php

function getServerVariable($var) {
  if (isset ( $_SERVER [$var] ) && ! empty ( $_SERVER [$var] )) {
    return $_SERVER [$var];
  }
  return false;
}

function main(){
  $method = $_SERVER ['REQUEST_METHOD'];
  if($method !== "GET"){
    // HTTP 405 : Method Not Allowed
    http_response_code(405);
    echo json_encode(false);
  }
  $login = getServerVariable("PHP_AUTH_USER");
  $password = getServerVariable("PHP_AUTH_PW");
  if ($login === FALSE || $password === FALSE) {
    // Pas d'identifiant on retourne false et HTTP 401 : Unauthorized
    http_response_code ( 401 );
    echo json_encode ( false );
    return false;
  }
  if($login !== "toto" && $password !== "password"){
    // Identifiants faux, on retourne false et HTTP 401 : Unauthorized
    http_response_code ( 401 );
    echo json_encode ( false ); 
  }else{
    // Identifiants ok, on retourne true et HTTP 202: Accepted
    http_response_code ( 202 );
    echo json_encode ( true );
  }
}
main();

Coté client

Coté client, il nous faut le fichier pour