【问题标题】:How to add session id to swift php mysql application backend如何将会话 ID 添加到 swift php mysql 应用程序后端
【发布时间】:2016-01-31 17:45:01
【问题描述】:

我目前正在使用ApachePHPMySQLiOS 应用程序开发后端。但是,我现在有点迷失了,因为我必须在应用程序中实现一种身份验证方法。

  • 每当用户注册应用程序时,都会发出一个唯一的用户 ID 并将其保存在数据库中。
  • 然后,当用户登录时,我将唯一的用户 ID 添加到 $_SESSIONS["Id"]
  • 此外,当用户注销时,会话被破坏。

但是,我不清楚这如何帮助我实现身份验证方法,而无需一次又一次地登录用户。

那么,在登录后,应用程序需要数据库中的其他信息,我是否应该将唯一的userId 传递给 PHP 脚本以检查它是否与 $_SESSION["Id"] 相同?

【问题讨论】:

  • 应用程序是否有任何会话数据?是浏览器的,不是吗?
  • 这个问题是针对 swift(客户端)端还是针对 php(服务器)端?请仅标记问题适用的平台。
  • 客户端使用Swift,服务端使用php

标签: php session token


【解决方案1】:

对不起,我不明白你在问什么。

如果您在登录时设置$_SESSION["Id"] 并在注销时将其销毁,那么这就足够了。

你的 db 脚本的第一行应该只是读取

if (isset($_SESSION["Id"]) {
    // do stuff knowing the user is authenticated
}

【讨论】:

  • 谢谢。我了解会话部分,但是,这将如何处理同时从同一服务器请求的多个用户?
  • 多个用户互不影响。这正是会话管理器所做的 - 确保每个人的信息安全且彼此分开。尝试添加 var_export($_SESSION['Id']) 并同时从 2 台不同的计算机加载页面。您将看到数据未共享。 :)
  • 好的。因此,当用户注册 ios 应用程序时,会为该用户创建一个随机 UserId 并保存。这是作为 $_SESSION["Id"] 添加的。那么,当应用程序请求另一个请求(例如从数据库中检索数据)时,我是否首先检查是否存在 $_SESSION["Id']?这会将数据与不同用户分开吗?很抱歉迷路了
  • 是的,你是对的。在我说 '// do stuff' 的地方,您可以在数据库中查询用户 id = $_SESSION["Id"]。这只会返回您当前用户的结果
  • 另外,你提到了 'random UserId' 。随机 id 最终必然会重复。我希望您按顺序生成 ID。如果您对此有疑问,请发布不同的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-02-15
  • 2014-02-19
  • 2012-09-17
相关资源
最近更新 更多