2017-10-17 187 views
0

我想直接在桌面上完成客戶端的ajax請求。如何在AJAX請求中隱藏api密鑰

問題是我的ajax請求需要一個「secret api Key」。我不希望客戶端有權訪問此api密鑰。

這裏我目前的js代碼:

var url = 'myurl';     
    var obj = new Object(); 
    obj.api_key   = "myKeyIwantToHide"; 
    $.ajax({ url: url, 
       type: 'post', 
       dataType: 'json', 
       data: obj, 
       cache: false, 
       success: function(result){ 
        alert(result); 
       } 
    }); 

有可能隱藏在訂單信息與JavaScript客戶端來完成我的Ajax請求。

THX, 克里斯托夫

+7

您無法在JavaScript客戶端中隱藏任何內容。 – Roberrrt

+3

如果發送給客戶端,則客戶端可以訪問。如果您需要保留密鑰,您必須在自己的服務器上創建代理。 – Pointy

+0

如果您有服務器的控制權,您應該使用JWT進行身份驗證。 – Baruch

回答

-1

您不能從客戶端完全隱藏API密鑰。但是,如果你的客戶是非技術性的。你可以讓他/她難以找到API密鑰。如果您使用的是MVC,則可以在將第一個請求發送到Index方法時設置API密鑰,並在返回時將其設置爲JavaScript變量。通過這種方式,用戶將無法看到硬編碼的值,與您所顯示的代碼不同。如果您使用的是ASP.NET,那麼您可以使用ViewBag輕鬆使用Razor語法將值設置爲javascript變量。

+0

假設像「但如果你的客戶是非技術性的」。編程時有一種不好的做法... –