我有一个API,我正在尝试进行基本身份验证以对其进行调用,这是对此GET请求的首次调用:
https://example.com/test/api/v1/api
浏览器将用户名和密码发送给我。我可以连接,但是如果我用这样的参数调用第二个请求:
https://example.com/test/api/v1/api/5
浏览器再次向我发送了一个用于连接用户和密码的模式。目前无法连接,用户名和密码未确认...
在.htaccess文件中,我有:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
api.php文件包含:
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authentification canceled';
exit;
} else {
$login = $_SERVER['PHP_AUTH_USER'];
$pwd = $_SERVER['PHP_AUTH_PW'];
if (isset($usersWS) && is_array($usersWS) && isset($usersWS[$login]) && $usersWS[$login] != "" && $usersWS[$login] == $pwd)
//if ($login == "toto" && $pwd= "toto1234")
{
echo "connecte";
}
else
{
header('HTTP/1.0 401 Unauthorized');
echo 'Authentification incorrecte';
exit;
}
我不知道怎么了? POST请求工作正常。
经过几次研究,我认为是我的.htaccess文件有问题。
当我发送此请求时:
https://example.com/test/api/v1/api.php?id=12
一切正常!但是有了这个请求:
https://example.com/test/api/v1/api/5
不起作用。
那么,如何在.htaccess中定义规则?
感谢您的帮助
答案 0 :(得分:0)
您不必使用PHP为您执行基本身份验证,您可以将所有内容都放入TRIVIA = input('TRIVIA: press enter to start')
strike = int('3')
strikesleft = ('strikes left: {} ').format(strike)
score = int('0')
scoregained = ('Your score is {}' ).format(score)
Q1 = input('What is the diameter of the earth? ')
if Q1 == ('7917.5'):
print('correct!')
input()
score = score+1
print(scoregained)
input()
文件中。为此,您必须生成用户/密码组合并将其放入服务器.htaccess
上的文件中,然后在/path/to/.htpasswd
文件中输入以下内容:
.htaccess