我想我有一个非常简单的问题。我目前正在开发一个 API,在您使用它之前,您必须先登录。登录是通过 http 请求进行的,因此要登录,您将访问
http://myapi.com/login.php?email=mail@mail.com&password
例如。
当电子邮件和密码正确时,我设置了一些会话变量并开始一个会话:
session_start();
$_SESSION['idUser'] = $row['id'];
$_SESSION['email'] = $row['email'];
print(json_encode(array("authenticated" => true)));
但是,当我访问 api 并从终端通过 cURL 发出请求(不是登录)时,它说我没有被授权,而我首先执行了登录请求。在另一个页面上的每个 api 调用上,我都会检查会话变量。如果已设置,则用户已登录:
function checkSession()
{
session_start();
if(!isset($_SESSION['idUser']) || !isset($_SESSION['email']))
{
print json_encode(array("error" => "Not authorized"));
exit();
}
}
为什么说我没有授权?当我从网络浏览器访问页面时,一切正常。
谢谢!