簡體   English   中英

PHP API獲得身份驗證

[英]PHP API get authentication

我用PHP創建了自己的API。 現在,我想使API更安全。

我試圖用ajax調用API:

  headers: {
    "Authorization": "Basic " + btoa("username:password"),
    "Content-Type": "application/json"
  },

然后讀取API:

$_SERVER

但標頭中沒有授權。

使我的PHP API更安全的最簡單方法是什么?

http://php.net/manual/zh/features.http-auth.php上的評論中,有一個簡單的auth腳本。 應該能夠對其進行修改以用於MySQL DB。

<?php

if(isset($_SERVER['PHP_AUTH_USER'])){
     $user = $_SERVER['PHP_AUTH_USER'];
     $pass = $_SERVER['PHP_AUTH_PW'];
} elseif (isset($_SERVER['HTTP_AUTHORIZATION'])) {
     if (strpos(strtolower($_SERVER['HTTP_AUTHORIZATION']),'basic')===0){
         list($user,$pass) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
     }
} else {
     header('WWW-Authenticate: Basic realm="My Realm"');
     header('HTTP/1.0 401 Unauthorized');
     die ("Not authorized");
}
// Connect to MySQL Data Source
// Perform MySQL Query - SELECT * FROM user WHERE username = ? AND PASSWORD = ?

if(!$results){
  // Close MySQL connection
  header('WWW-Authenticate: Basic realm="My Realm"');
  header('HTTP/1.0 401 Unauthorized');
  die ("Not authorized");
}

// Continue providing API Results

?>

如果仍然看不到結果,那么在var_export $_SERVER$_POST$_REQUEST時會看到什么? POST時,您的AJAX呼叫通過什么?

通過http://evertpot.com/223/進行了詳細編輯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM