2016-09-29 47 views
0

我有一個PHP API服務,我第一次登錄,使用AJAX之前發送和setRequestHeader和我保存在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網址中使用oAuth。可以請幫助我做到這一點?

謝謝

+0

您可以使用本地存儲插件保存令牌在android共享PR推理https://github.com/TheCocoaProject/cordova-plugin-nativestorage – Akis

+0

@Akis:這個插件是否安全保存密碼? –

+0

@Akis:我在科爾多瓦聽說過oAuth。可以使用這個還是不是? –

回答

1

一般本地和會話存儲不被認爲是安全的存儲有價值的用戶信息,例如是密碼或OAuth憑證。

由於這個原因,建議使用每個平臺的本機存儲方法(用於android和NSUserDefaults的ios共享偏好)。您可以通過實現這一目標的nativeStorage cordova plugin

這是一個非常大的話題討論所以它可能是,如果你閱讀已經回答寫科爾多瓦安全和OAuth令牌這裏有問題和文章一些有用的鏈接更好:

https://security.stackexchange.com/questions/71878/cordova-phonegap-refreshtoken-in-localstorage

https://cordova.apache.org/docs/en/latest/guide/appdev/security/

https://www.checkmarx.com/2015/10/23/the-worst-phonegap-security-issues-and-how-to-avoid-them/