2

我有我们公司内部使用的联系人管理/CRM 应用程序,它是一个基于 Web 的应用程序,因此使用了很多 Ajax。大部分数据是JSON,后端服务器使用PHP和MySQL作为数据库...

我想构建一个迷你 Adob​​e Air 版本,主要是因为我可以使用拖放文件上传、客户端图像大小调整、上传文件的客户端屏幕截图创建等。

现在,因为服务器端是一个美化的 JSON 数据提供者,我想我可以调整它以向 AIR 应用程序提供数据。

我的问题是,我如何处理身份验证?
在 PHP 中,我使用会话进行身份验证...
对于 AIR,我认为它更像一个 JSON Web 服务,您可以在其中调用某个 URL 来访问某些 JSON 数据。

经过一番头脑风暴后,我想到了以下几点:

  1. AIR 应用程序启动时用户登录
  2. 服务器在成功登录时返回一个唯一令牌,并将该令牌存储在数据库中
  3. AIR 应用程序必须将该令牌附加到它向服务器发出的每个请求中
  4. 在每个请求中,服务器通过将令牌与存储在数据库中的令牌进行比较来检查令牌的有效性。

问题是,
有没有比这更好的方法?
令牌的有效期应该是多久?
我如何处理关闭应用程序而不注销的客户端,并且不给我机会使服务器上的令牌无效?

如果有人遇到过类似情况,希望您的回答能有所启发...

谢谢

4

1 回答 1

4

这个怎么样:

  1. 只需在身份验证时将 JSON 数据中的 PHP 会话 ID 返回到 AIR 应用程序
  2. 您的 AIR 应用程序存储会话 ID 并将其用于该会话中的请求
  3. 当您的 PHP 收到带有会话 ID 的请求时,将其设置为该会话 ID:
  4. 您的会话将由 PHP 轻松维护,您将能够正常使用 $_SESSION。

当您收到带有 Session ID 的请求时,只需执行以下操作:

if(isset($_GET['sess_id'])){
  session_id($_GET['sess_id']);
  // where $_GET['sess_id'] is where you put the Session ID stored in your AIR APP
}

这可能会更好,因为您不再需要在数据库中维护会话。

于 2009-11-17T23:09:11.413 回答