【发布时间】:2014-02-23 13:33:48
【问题描述】:
我正在使用 silex(php 微框架)构建一个非常简单的 API。 我知道如何使用 Facebook 连接或用户名/密码对用户进行身份验证。
我想构建这个 API 来为我的移动应用程序提供数据。我的 API 使用的是 HTTPS。 Facebook 认证:
- Facebook Connect 发生在移动应用上
- 移动应用正在向 API 发送用户令牌和 facebook_id
- API 检查用户 Facebook id 请求
/me?token=... - API 检查 Facebook app_id 是否正确
/app?token=... - -> 用户确实存在并通过了身份验证
现在使用登录名/密码:
- 移动应用发送用户名和编码密码
- API 检查组合是否正确
- -> 用户确实存在并通过了身份验证
问题是关于用户会话的。我真的不想对每个请求都进行此测试(即,对于 Facebook 身份验证,对 Facebook 有 2 个请求)。
我正在考虑为用户打开一个会话并存储某种 API 令牌。令牌将被散列和加盐(salt + user_id + time 交付)。我会将它存储在会话表中,并且只需要检查令牌是否仍然有效并且属于请求用户。
因此,移动应用只会为每个请求发送用户 ID + api 令牌。
你怎么看?您是否有更好的解决方案来保持简单? 或者您认为这种设计有什么问题?
干杯, 马克西姆
【问题讨论】:
-
也许你应该稍微简化你的问题,因为知道你到底要什么是很令人困惑的(我认为这就是你投反对票的原因。)
标签: php api restful-authentication silex