我有一個簡單的問題,可能點出一個複雜的答案:(調用從jQuery的我的網頁API安全
我有一個Web API,它工作得很好,但現在我想建立認證/授權。 我需要它在所有平臺上工作,但主要是從jQuery的自然,我不想把我的管道沿線用戶名和密碼以明文形式是這樣的:
function GetAllCategories() {
var credentials = $.base64.encode('r3plica:mypassword');
var authType = "Basic " + credentials;
$.ajax({
url: "http://localhost:18904/api/Categories",
type: "GET",
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", authType);
},
success: function (data) {
alert('Success!');
},
error: function() {
alert('error');
}
});
}
,所以我一直在尋找其他替代品。 是使用3段OAuth的唯一選擇嗎?我希望只傳遞一個查詢字符串鍵/值到我的api,讓它處理所有事情,但我無法一步步找到這樣做的過程。 一切似乎都很複雜。
那麼,有沒有人知道我能做什麼?我已閱讀加載並試圖實現大量內容。
我設法得到這個工作:http://codebetter.com/johnvpetersen/2012/04/04/moving-from-action-filters-to-message-handlers/ 從我雖然可以告訴,你需要使用你的公鑰發送到API之前加密您的字符串(用戶名),然後API將解密使用私鑰和授權你。
所以我的2個問題很簡單:)
- 你可以用上面的鏈接,並從jQuery的輕鬆調用(即不使用第三方庫)
- 如果沒有,什麼是最好的方式去關於保護我的API,使其可以直接從jQuery.ajax調用中調用?
只是爲了澄清,我使用SSL的API提前
乾杯,
/r3plica
因此,您是說客戶端將始終使用服務器端邏輯?我知道每個請求上的令牌更改,因此嗅探它並不好,但會不會有客戶端不使用服務器端代碼的情況? – r3plica 2013-05-09 18:46:54
如果您使用SSL連接,則「嗅探」問題已過時。它適用於用戶可以簡單查看html源代碼的情況。客戶端不使用Serverside代碼的情況例如是使用PhoneGap編譯的智能手機Web應用程序。但是,您可以將身份驗證數據存儲在localStorage或其他內容中。 – take 2013-05-09 18:51:51
如何驗證我的web api中的'genToken()',然後在我的Web API中進行驗證? – Si8 2017-01-26 14:27:05