我的猜测是:
- 您正在使用自己的 JSON 来创建 Web 服务,
- 您正在使用其他人的 JSON 来制作 Web 服务,或者 3. 您正在尝试制作自己的 JSON API。
使用您自己的 JSON
你为什么要这样做?如果你坚持使用 php,一切都会变得更简单。只做饼干。如果你想使用 JSON,它仍然需要 cookie!同样的事情,但更复杂,更容易破解!
使用其他网站提供的 JSON
首先这不是 JSON。那是一个数组。如果您提供的代码已经从 json 转换为数组,让我们更改:
$string = file_get_contents("http://www.website.com/api.json"); // gets file content
$decoded=json_decode($string); // creates objects (not array... this makes it easier (for me))
$item = $decoded->item-string; // generates the string from an item's name
如果您需要多个,请重复 $item。
使用$item = $decoded->item-string->secondary-item-string; 获取项目中的项目。
创建您自己的登录 API
首先,您根本没有使用 JSON。我相信这是一个 PHP 输出数组。您可以使用 json_encode 将数组编码为 JSON。
与其让网站开发人员直接制作登录表单(我认为您正在尝试这样做),不如让他们使用您的登录系统。这样,他们就不能通过虚假登录来秘密“窃取”密码……等等。
首先制作一个名为 loginapi.php 的 php 文件。使用 htaccess 将 loginapi.php 重写为 loginapi.json (Rewrite Engine) 然后为登录表单创建一个 .html 文件,例如 loginform.html
假设你使用 $isloggedin 来检查用户是否登录:
header ('Content-type: text/javascript; charset=utf-8');
if($isloggedin == "yes"){
$arr = array("isloggedin" => "yes", "item1" => "output1", "item2" => "output2", "item3" => "output3");
}
else {
$arr = array("isloggedin" => "no", "html" => "<iframe src=\"http://www.yoursite.com/loginform.html\" width=\"400\" height=\"200\" style=\"border:none;\"></iframe>");
}
echo json_encode($arr);
↑ 这告诉开发人员该人是否已登录。 ↑
你也可以制作一个“api key”,这样
- 您可以找到所有使用您的 API 的开发人员
- 您可以监控/限制使用您的 API 的人
为此,您必须在数据库中为开发人员 API 密钥创建一个表。然后使用 $_GET['key'];检查是否涉及 api 密钥。然后检查数据库是否有匹配的 api 密钥。
在您接受开发者提供 API 密钥的地方,让开发者输入他们的网站 url,并使用哈希来制作密钥,例如 md5。