如何使用OAuth2保护通过Ajax实现的PHP API的安全性



我目前有一个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。

最新更新