2016-05-31 41 views
2

我想用API與我的服務器進行通信。使用API​​將外部數據加載到PhoneGap應用程序中

我的第一個問題:是否可以編寫我自己的API並在Phonegap中使用它?

這將應用:

  • 在SHA1發送的登錄密碼。

  • API將返回令牌或SLUG將存儲在本地,並允許(或不)訪問應用程序的內容:換句話說,成功或不驗證。

驗證成功後,應用程序向API發送POST請求並使用該令牌的值檢索與令牌(用戶相關)相關的數據。

在JSON中檢索到查詢結果。

我的第二個問題:它如何工作以及我需要什麼?

感謝您的幫助!

回答

2

確實有可能做你想要的一切。您可以使用從客戶端到服務器端的ajax調用,並獲取所需的所有數據,即連接令牌。

所以,你點:

  1. 「在SHA1發送登錄/密碼」:從DOM中獲取登錄/密碼情侶,轉換成SHA256(比SHA1更好),通過發送到您的服務器ajax
  2. 以JSON格式從您的服務器取回結果。如果成功,得到給定的令牌,並在本地存儲臨時
  3. 使用令牌從客戶的每一次溝通API調用到您的服務器,所以你就可以知道有關用戶身份

我也建議個人數據由您的應用管理時使用https協議。

你需要什麼? JS和/或jQuery體驗,(可能)管理客戶端和服務器端的所有代碼,有時間開發。我還建議您使用稱爲Runscope的優秀在線工具來跟蹤您的所有客戶端/服務器通信和調試。

////編輯////

  • 如何使用您的API進行交互:我是一個客戶端的DEV,這樣我就可以送你一個片斷登錄:

email = $("#email").val();
password = $("#password").val(); var newdatatosend = email+"/"+password;
var datatosend = {"login": window.btoa(newdatatosend) }; $.ajax({ type: "POST", url: url_main+url_api+url_login, dataType: 'json', data: JSON.stringify(datatosend), contentType: "application/json" }) .done(function(data) { // Here are data received from the server: the connection token })

  • 正如你可以看到,我收到令牌從服務器(如果我的憑據AR e真正的),我將它存儲在SessionStorage(應用程序關閉時爲空的本地存儲)中。無論如何,您應該在服務器端管理令牌的過期時間(2小時?12小時?)。因此,當客戶端嘗試使用其舊的存儲令牌時,應該要求再次登錄以刷新會話。
  • 要使用您只需使用一套會話存儲/獲取功能:

    sessionStorage.setItem('mytoken', token); 
    var token = sessionStorage.getItem('mytoken'); 
    
+0

謝謝您的答覆。我已經瞭解了整個操作的很多部分。我會喜歡的是,如何與API進行交互我也想知道令牌如何工作,如何存儲它以及可能對其使用的建議(特定令牌的有效期) I熟悉JavaScript和JQuery,並提供JQuery的一個小偏好。 我想最大限度地處理客戶端的事情,以期在未來有重要的用戶羣,並避免使用最大的服務器。 – MedMatrix

相關問題