使用 API 将外部数据加载到 PhoneGap 应用程序中
Posted
技术标签:
【中文标题】使用 API 将外部数据加载到 PhoneGap 应用程序中【英文标题】:Loading external data into a PhoneGap app using an API 【发布时间】:2016-09-29 13:35:22 【问题描述】:我想通过 API 与我的服务器通信。
我的第一个问题:是否可以编写自己的 API 并将其与 Phonegap 一起使用?
这个应用程序会:
在 SHA1 中发送登录密码。
API 将返回令牌或 SLUG 将存储在本地,这将允许(或不允许)访问应用程序的内容:换句话说,是否成功验证。
认证成功后,应用会向 API 发送一个 POST 请求,其中包含令牌的值,以检索与令牌相关的数据(用户相关)。
以 JSON 格式检索的查询结果。
我的第二个问题:它是如何工作的,我需要什么?
感谢您的帮助!
【问题讨论】:
【参考方案1】:绝对有可能满足您的要求。您可以使用从客户端到服务器端的 ajax 调用并取回您需要的所有数据,即连接令牌。
所以,给你点:
-
“在 SHA1 中发送登录名/密码”:从 DOM 中获取登录名/密码对,转换为 SHA256(优于 SHA1),通过 ajax 发送到您的服务器
以 JSON 格式从您的服务器取回结果。如果成功,获取给定的令牌并在本地临时存储
使用令牌调用从客户端到服务器的每个通信 API,这样您就可以确定用户身份
如果个人数据由您的应用管理,我还建议使用 https 协议。
你需要什么? JS 和/或 jQuery 经验,(可能)管理客户端和服务器端的所有代码,是时候开发了。我还建议您使用名为Runscope 的出色在线工具来跟踪您的所有客户端/服务器通信和调试。
//// 编辑 ////
如何与您的 API 交互:我是客户端开发人员,所以我可以给您一个 sn-p 以登录:如您所见,我从服务器接收令牌(如果我的凭据是真实的)并将其存储在 SessionStorage(当应用程序关闭时为空的本地存储)。无论如何,您应该在服务器端管理令牌的到期时间(2 小时?12 小时?)。因此,当客户端尝试使用其存储的旧令牌时,您应该要求再次登录以刷新会话。
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 )
要使用会话存储,您只需使用 set/get 函数:
sessionStorage.setItem('mytoken', token); var token = sessionStorage.getItem('mytoken');
【讨论】:
感谢您的回复。我已经对整体操作了如指掌。我想要的是如何与 API 进行交互 我还想知道令牌是如何工作的、如何存储它以及可能对它的使用提出建议(特定令牌的有效期) 我知道 javascript 和 JQuery对 JQuery 有一点偏好。我希望在客户端处理最大的事情,以期在未来拥有重要的用户群,并避免使用最大的服务器。以上是关于使用 API 将外部数据加载到 PhoneGap 应用程序中的主要内容,如果未能解决你的问题,请参考以下文章
在带有外部 URL 的 iOS 上使用 PhoneGap/Cordova
PhoneGap Plugin ExternalScreen 加载外部资源
在 jquery mobile / phonegap 中重新加载外部脚本(即谷歌地图)
在启动时加载外部链接的 Phonegap 应用程序 - Android