[英]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.