【发布时间】:2011-07-23 06:52:43
【问题描述】:
我正在为我的网站构建 API,但遇到了问题。我希望我的用户能够使用 API “登录”到他们的帐户,但我的网站不使用用户名/密码系统,它使用 Twitter 的 API 和 cookie/会话进行身份验证。我正在尝试考虑允许用户在不影响安全性的情况下使用 API 发布数据的最佳方式。基本上我需要一种方法来确保用户是他们所说的来自应用程序的人。
我想到的一个想法是让用户创建一个密码,他们将使用该密码通过 API 中的方法“登录”。向此方法发送正确的凭据(Twitter 用户名和他们选择的密码)将返回一个与他们的帐户相关联的令牌。更进一步,我可以将令牌(本质上是一个 API 密钥)最初设置为非活动状态,并让 API 还返回一个密码,该密码也将与用户的帐户相关联。然后,用户必须在网站上登录他们的个人资料并输入密码,这将激活他们的令牌并允许他们使用 API 发布。
我想让用户变得简单,但我不想潜在地危及其他用户的安全。任何人都可以建议一种更好的方式来做这样的事情,或者让我知道我建议的方式是否是一种好的方式?
【问题讨论】:
-
您通常如何确定哪个用户是哪个用户?您完全依赖 Twitter 的 Oauth?
-
我首先检查是否存在带有会话值的cookie,如果cookie不存在,则用户未登录。如果存在,我检查会话表在数据库中进行匹配,如果未找到匹配项,则用户未登录,如果存在匹配项,我会验证其他一些内容并获取与会话相关联的用户信息,并且用户已登录。在任何对于用户未登录的事件,我向他们提供一个登录链接,该链接将他们重定向到 Twitter 的身份验证服务器,并向我发送一个值,允许我创建会话并让他们登录。
标签: php api authentication soap mobile