【问题标题】:Loading external data into a PhoneGap app using an API使用 API 将外部数据加载到 PhoneGap 应用程序中
【发布时间】:2016-09-29 13:35:22
【问题描述】:

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

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

这个应用程序会:

  • 在 SHA1 中发送登录密码。

  • API 将返回令牌或 SLUG 将存储在本地,这将允许(或不允许)访问应用程序的内容:换句话说,是否成功验证。

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

以 JSON 格式检索的查询结果。

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

感谢您的帮助!

【问题讨论】:

    标签: javascript android ajax cordova phonegap-plugins


    【解决方案1】:

    绝对有可能满足您的要求。您可以使用从客户端到服务器端的 ajax 调用并取回您需要的所有数据,即连接令牌。

    所以,给你点:

    1. “在 SHA1 中发送登录名/密码”:从 DOM 中获取登录名/密码对,转换为 SHA256(优于 SHA1),通过 ajax 发送到您的服务器
    2. 以 JSON 格式从您的服务器取回结果。如果成功,获取给定的令牌并在本地临时存储
    3. 使用令牌调用从客户端到服务器的每个通信 API,这样您就可以确定用户身份

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

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

    //// 编辑 ////

    • 如何与您的 API 交互:我是客户端开发人员,所以我可以给您一个 sn-p 以登录:

    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 })

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

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

    【讨论】:

    • 感谢您的回复。我已经对整体操作了如指掌。我想要的是如何与 API 进行交互 我还想知道令牌是如何工作的、如何存储它以及可能对它的使用提出建议(特定令牌的有效期) 我知道 JavaScript 和 JQuery对 JQuery 有一点偏好。我希望在客户端处理最大的事情,以期在未来拥有重要的用户群,并避免使用最大的服务器。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多