带有自定义头的PHP基本Rest API
我对PHP Rest API相当陌生。我想升级我的知识,因此我需要为我的web服务创建授权。我想先问一下他们是否有权查看我的web服务,如果没有,他们就不会看到 这就是我到目前为止所做的:带有自定义头的PHP基本Rest API,php,rest,Php,Rest,我对PHP Rest API相当陌生。我想升级我的知识,因此我需要为我的web服务创建授权。我想先问一下他们是否有权查看我的web服务,如果没有,他们就不会看到 这就是我到目前为止所做的: <?php include('db.php'); $sql = "SELECT * FROM bb_users"; $stmt = $conn->prepare($sql); $stmt->execute(); $set = array(); while(
<?php
include('db.php');
$sql = "SELECT * FROM bb_users";
$stmt = $conn->prepare($sql);
$stmt->execute();
$set = array();
while($r = $stmt->fetchAll(PDO::FETCH_ASSOC)){
$set = $r;
}
// $username='ABC';
// $password='XYZ';
//header("Authorization: Basic " . base64_encode($username . ":" . $password));
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');
echo json_encode($set);
?>
有什么想法吗?我非常感谢你的帮助。如果你能提供一些开始的提示或链接 这是您尝试执行的基本实现。请记住,这使用基本的访问身份验证,它不提供任何针对用户名和密码的保护,因为这些基本上是通过网络传输的 为了构建更好、更健壮的API,我推荐它是最好的API之一,如果不是最好的 至于身份验证,我建议使用OAuth 仅供参考:我假设您的代码是正确的,并且没有任何错误,所以我只是将其移动到if块中。有一个用于检查\u凭证\u是否有效的\u函数的调用,该函数是您将定义并调用以确保用户名和密码有效的函数。如果凭证有效,它将返回json编码的数据并退出,否则它将继续到脚本末尾并返回401状态代码
<?php
$headers = apache_request_headers();
if(isset($headers['Authorization'])) {
$authorization = $headers['Authorization'];
if (preg_match('/Basic\s+(.*)$/i', $authorization, $auth)) {
// Split the string, base64 decode it
list($user, $pass) = explode(':', base64_decode($auth[1]));
if (check_if_credentials_are_valid_function($user, $pass)) {
include('db.php');
$sql = "SELECT * FROM bb_users";
$stmt = $conn->prepare($sql);
$stmt->execute();
$set = array();
while($r = $stmt->fetchAll(PDO::FETCH_ASSOC)){
$set = $r;
}
// $username='ABC';
// $password='XYZ';
//header("Authorization: Basic " . base64_encode($username . ":" . $password));
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');
echo json_encode($set);
exit();
}
}
}
header('HTTP/1.0 401 Unauthorized');
exit();
?>