使用 API 将外部数据加载到 PhoneGap 应用程序

Loading external data into a PhoneGap app using an API

我想用 API 与我的服务器通信。

我的第一个问题:是否可以自己编写 API 并将其与 Phonegap 一起使用?

这个应用会:

身份验证成功后,应用程序向 API 发送一个 POST 请求,其中包含令牌的值以检索与令牌相关的数据(用户相关)。

在 JSON 中检索到的查询结果。

我的第二个问题:它如何工作以及我需要什么?

感谢您的帮助!

完全有可能做到您所要求的一切。您可以使用 ajax 从客户端到服务器端的调用并取回您需要的所有数据,即连接令牌。

所以,给你分:

  1. "Send the login/password in SHA1":从DOM获取login/password对,转换成SHA256(比SHA1更好),通过ajax[=35=发送到你的服务器]
  2. 从您的服务器以 [​​=55=] 格式取回结果。如果成功,获取给定的令牌并临时存储在本地
  3. 使用令牌调用从客户端到服务器的每一次通信API,这样您就可以确定用户身份

如果个人数据由您的应用管理,我还建议使用 https 协议。

你需要什么? JS and/or jQuery 经验,(可能)管理客户端和服务器端的所有代码,有时间开发。我还建议您使用名为 Runscope 的出色在线工具来跟踪所有 client/server 通信和调试。

//// 编辑 ////

  • 如何与您的 API 互动:我是一名客户端开发人员,所以我可以给您发送一段代码供您登录:

email = $("#email").val();<br> password = $("#password").val(); var newdatatosend = email+"/"+password;<br> 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 })

  • 如您所见,我从服务器收到令牌(如果我的凭据是真实的)并将其存储在 SessionStorage(应用程序关闭时为空的本地存储)中。无论如何,您应该在服务器端管理令牌的过期时间(2 小时?12 小时?)。因此,当客户端尝试使用其旧存储的令牌时,您应该要求再次登录以刷新会话。
  • 要使用会话存储,您只需使用 set/get 函数:

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