【问题标题】:Authenticating users for write-access via an API通过 API 验证用户的写访问权限
【发布时间】: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


【解决方案1】:

身份验证/授权,IMO 是您需要创建的独立应用层。其俗称:ACL。

与您最近的问题有关,我建议您使用 oAuth 实现,或者为此使用一些 HTTP 身份验证。

【讨论】:

    猜你喜欢
    • 2019-06-28
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多