2017-03-15 15 views
0

私は現在cross-originajaxの個人用のアプリケーションをいくつか使用しています。API'sです。OAuth2でAjax経由でPHP APIのセキュリティを保護する方法

私のアプリケーションでapiを使用できるようにしておきたいと思います。

検索しましたが、OAuth2が見つかりました。私はを使用してphpを使用しましたが、私のアプリはリクエストを使用してビルドされていますのでを使って認証するにはOAuth JS Libraryが見つかりましたが、使用方法が分かりません。私は本当にOAuthを使う初心者です。

私のコードは、多かれ少なかれ、このようなものです:リクエストのため

私の.jsファイル: myrequests.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ファイル:customapi.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).')'; 

答えて

0

私はセッション/クッキーに頼るべきだと思います。つまり、あなたのPHP APIのバックエンドの読み取り - フロントエンドとバックエンドの両方で本質的に同じドメインです(私は推測します)。

誰かがあなたのページにアクセスし、あなたのAPIのPHPスクリプトからそれを読むたびに、塩でクッキーを作成することができます。これはもちろん、あなたのサイトからのクッキーを持っている人なら誰でもあなたのAPIを読むことができますが、訪問した場合は同じです。

必要に応じて、サイトにログインしているユーザーに対してのみCookieを作成できます。

+0

私のアプリケーションは 'cross-origin'です。バックエンドとフロントエンドは異なるドメインにあります。 'js'ファイルが存在し、' php' 'api'は別のドメインにあります。私はクッキーを使用することはできません。さらに、私はOAuthのようなより安全なアプローチを望んでいました。 – Lioo

関連する問題