【发布时间】:2016-09-30 20:14:46
【问题描述】:
我有一个 php api 服务,第一次登录,在发送和 setRequestHeader 之前使用 ajax,我将用户名和密码保存在 localStorage:
function Login(username, password) {
alert(username);
alert(password);
$.ajax({
url: 'APILink',
type: 'post',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
},
success: function (data) {
alert("data" + DecryptData(data.pationts_pationtid));
alert("data" + DecryptData(data.pationts_nationalid));
alert("data" + DecryptData(data.pationts_pationtfirstname));
alert("data" + DecryptData(data.pationts_pationtlastname));
alert("data" + DecryptData(data.pationts_password));
alert("data" + DecryptData(data.pationts_password));
sessionStorage.setItem("username", username);
sessionStorage.setItem("password", password);
$.mobile.navigate("index.html");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("error" + xhr.responseText);
alert("errrrrrr" + thrownError);
}
});
}
下次在我的 ajax 中,我从会话存储中获取了用户名和密码:
var username = sessionStorage.getItem("username");
var password = sessionStorage.getItem("password");
$.ajax({
url: 'http://localhost:17225/notification/index',
type: 'post',
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
},
success: function (data) {
alert("data" + data);
},
data: {
deviceId: sessionStorage.getItem("deviceId"),
platform: device.platform,
//Orders : orders
drugname: value.drugname,
instruction: value.instruction,
time: value.time,
dose: value.dose
},
error: function (xhr, ajaxOptions, thrownError) {
alert("er" + xhr.responseText);
alert("er" + thrownError);
}
});
但现在听说在localstorage中保存密码不安全,我想使用oAuth来保护身份验证。但我不知道如何在 ajax url 中使用 oAuth。请帮我这样做吗?
谢谢
【问题讨论】:
-
您可以使用原生存储插件将令牌保存在android共享首选项github.com/TheCocoaProject/cordova-plugin-nativestorage
-
@Akis : 这个插件保存密码安全吗?
-
@Akis :我听说过科尔多瓦的 oAuth。这个可以用还是不用?
标签: ajax cordova oauth local-storage