php - 在我对 API 中的用户进行身份验证后,我应该如何确保他们没有访问权限太久

标签 php mysql api cookies

我正致力于在社交网络上构建 API 和应用程序部分,因此它将类似于 myspace、facebook、hi5、friendster、netlog 和许多其他具有应用程序部分的东西,它们都使用 REST 服务器方法,并且大多数他们将为每个开发的应用程序发布一个 api key 和 secret 。构建应用程序的人将传递 api key 和用户签名,该用户签名是使用基于使用该应用程序的用户 ID 和应用程序的 API key 的哈希算法创建的。应用程序代码应该设置一个 cookie,其中包含一些信息,例如用户 ID、签名和时间。因此,在我的服务器端,REST 部分是否应该像应用程序一样构建签名,检查以确保它们相同,如果它们是相同的,我会发回正确的数据。我担心的是,我如何确保开发人员不会设置用户的 cookie 来长时间保持对他们的身份验证,我应该比较用户签名的创建时间,如果是一天之久,那么我会发送一个错误的从 REST 返回响应?

当用户首次从我的主站点添加应用程序时,我会将应用程序站点加载到 iframe 中,然后传入用户 ID 和包含 iframe 的其他字段,以便应用程序可以使用 GET 来初始获取信息它需要设置它的 cookie。

如果您能在这个问题上提供帮助,我将不胜感激,到目前为止,我的方向听起来是否正确?

顺便说一句,我正在使用 PHP/MySQL

最佳答案

我会将您通过 API 传回的 token 和用户标识符存储在带有时间戳的数据库中。当用户通过 API checkin 进行身份验证时,检查时间戳并查看它是否太旧。如果它返回 FALSE 之类的东西,它会触发一些其他命令,使它们重新验证到您的系统中,这反过来会生成一个新的 api token 供用户使用。

关于php - 在我对 API 中的用户进行身份验证后,我应该如何确保他们没有访问权限太久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1994277/

相关文章:

mysql - 如何使用 , 分隔符更新 mysql 中的先前值

mysql - 数据库设计: many2many relationship for self referencing FK

api - online_presence 不再工作

java - 在Java中发送HTTP POST请求

php - MySql 只返回一个重复条目的实例

php - 下拉选择菜单有效,但无法预选

php - 使用 PHP 格式化 XLS 文件

java - 使用 DatabaseMetaData 检索 mysql 表注释

c# - 如何通过屏幕键盘与其他软件进行通信?

PHP 在 for() 循环中从 mysql 获取结果