使用API​​

时间:2016-05-31 13:39:00

标签: javascript android ajax cordova phonegap-plugins

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

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

这个应用程序会:

  • 在SHA1中发送登录密码。

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

成功验证后,应用程序向API发送POST请求,并使用令牌的值来检索与令牌相关的数据(与用户相关)。

以JSON检索查询结果。

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

所以,对你而言:

  1. "在SHA1"中发送登录名/密码:从DOM获取登录/密码对,转换为SHA256(优于SHA1),通过ajax发送到您的服务器
  2. 以JSON格式从您的服务器获取结果。如果成功,请获取给定的令牌并临时存储
  3. 使用令牌将您客户端的每个通信API调用到您的服务器,这样您就可以确定用户身份
  4. 如果个人数据由您的应用管理,我还建议使用https协议。

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

    ////编辑////

    • 如何与您的API进行互动:我是客户端开发人员,因此我可以为您提供一个登录片段:
      

    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');