使用 API 将外部数据加载到 PhoneGap 应用程序
Loading external data into a PhoneGap app using an API
我想用 API 与我的服务器通信。
我的第一个问题:是否可以自己编写 API 并将其与 Phonegap 一起使用?
这个应用会:
以 SHA1 发送登录密码。
API 将 return 令牌或 SLUG 将存储在本地并且允许(或不允许)访问应用程序的内容:换句话说,认证成功与否。
身份验证成功后,应用程序向 API 发送一个 POST 请求,其中包含令牌的值以检索与令牌相关的数据(用户相关)。
在 JSON 中检索到的查询结果。
我的第二个问题:它如何工作以及我需要什么?
感谢您的帮助!
完全有可能做到您所要求的一切。您可以使用 ajax 从客户端到服务器端的调用并取回您需要的所有数据,即连接令牌。
所以,给你分:
- "Send the login/password in SHA1":从DOM获取login/password对,转换成SHA256(比SHA1更好),通过ajax[=35=发送到你的服务器]
- 从您的服务器以 [=55=] 格式取回结果。如果成功,获取给定的令牌并临时存储在本地
- 使用令牌调用从客户端到服务器的每一次通信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');
我想用 API 与我的服务器通信。
我的第一个问题:是否可以自己编写 API 并将其与 Phonegap 一起使用?
这个应用会:
以 SHA1 发送登录密码。
API 将 return 令牌或 SLUG 将存储在本地并且允许(或不允许)访问应用程序的内容:换句话说,认证成功与否。
身份验证成功后,应用程序向 API 发送一个 POST 请求,其中包含令牌的值以检索与令牌相关的数据(用户相关)。
在 JSON 中检索到的查询结果。
我的第二个问题:它如何工作以及我需要什么?
感谢您的帮助!
完全有可能做到您所要求的一切。您可以使用 ajax 从客户端到服务器端的调用并取回您需要的所有数据,即连接令牌。
所以,给你分:
- "Send the login/password in SHA1":从DOM获取login/password对,转换成SHA256(比SHA1更好),通过ajax[=35=发送到你的服务器]
- 从您的服务器以 [=55=] 格式取回结果。如果成功,获取给定的令牌并临时存储在本地
- 使用令牌调用从客户端到服务器的每一次通信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');