我目前有一个cross-origin
ajax
应用程序,它消耗了我所做的一些个人API's
。
我想保护它,以便只有我的应用程序可以使用api
。
我做了一些搜索,找到了OAuth2。我使用 php
逐步遵循了这个步骤,但我的应用程序是使用 ajax
请求构建的,所以我找到了这个 OAuth JS 库使用 ajax
进行身份验证,但我不知道如何使用它,有人可以举一些简单的例子吗?我真的是使用 OAuth 的初学者。
我的代码或多或少是这样的:
我的请求.js文件:我的请求.js
function someRequest(parameter1){
return $.ajax({
url:'http:/www.mysite.com/myapis/customapi.php?callback=?',
dataType:'jsonp',
data:{p1:parameter1}
})
.done(function(data){
console.log("Done!");
})
.fail(function(data,textStatus,errorThrown){
console.error(data,textStatus,errorThrown);
})
}
我在服务器中的 api 文件:自定义.php
<?php
include "dbConnect.php";
header('Content-Type:application/json;charset=UTF-8');
$p = $_GET['p1']; er
$myquery = "SELECT name, adress from table1 WHERE name = :p";
$sql = $pdo->prepare($myquery);
$sql->bindValue(":p",$p,PDO::PARAM_STR);
$sql->execute();
$result = $sql->fetchAll();
$data['d'] = $result;
echo $_GET['callback'] . '('.json_encode($data).')';
我认为你应该依赖会话/cookie - 即你的PHP API后端读取 - 因为它本质上是前端和后端的相同域(我猜(。
每次有人访问您的页面并且您从API php脚本中读取时,您都可以用盐创建一个cookie。这当然意味着任何拥有您网站 cookie 的人都可以读取您的 API,但如果访问您身边,情况也是一样的。
如果需要,您可以仅为已登录您网站的用户创建 Cookie。