【问题标题】:Can I use session-based authentication for my web API?我可以对我的 Web API 使用基于会话的身份验证吗?
【发布时间】:2010-08-16 01:59:23
【问题描述】:

我正在为我的应用程序实现一个 Web 服务器 API,但我在弄清楚我应该使用哪种身份验证方法来验证用户(以及其他客户端应用程序)的请求时陷入了困境。我认为我并没有真正理解 OAuth 和其他身份验证协议的用途。

我希望在没有网络浏览器干预的情况下执行身份验证,完全来自我的 iPhone 应用程序或其他自定义第三方客户端。基于会话的身份验证是这里的好方法吗? (例如)Facebook iPhone 客户端如何使用 Web API 进行身份验证?我不认为它使用 OAuth 或类似的东西,因为从不显示触摸登录/授权表单。据我所知,OAuth 仅用于第三方应用程序。但为什么会这样呢? iPhone客户端不能也算第三方应用吗?

如果我的问题含糊不清,我很抱歉,请指出我缺少的细节等。谢谢。

【问题讨论】:

    标签: iphone web-services api authentication oauth


    【解决方案1】:

    OAuth 中的“Auth”不是关于身份验证,而是关于授权。这意味着,如果您是服务提供者,您可以支持 OAuth 以允许用户根据需要向任何对 OAuth 友好的消费者授予对单个资源的访问权限。 OAuth 有自己的安全架构来保护验证、授予和授权的整个过程......然后身份验证是任何进一步请求的必要步骤。

    你是对的。 Facebook iPhone 不使用 OAuth 进行身份验证,尽管它可以。您可以验证它here。而且我认为因为它是 Facebook 本身的应用程序,当您正是网站所有者时,添加另一层安全性很麻烦。

    因此,如果您不打算支持其他第 3 方客户端访问您用户的资源,那么基于 cookie 的身份验证是可以的。否则,您可能想要提供 OAuth,我认为值得实施,因为谁知道,YGNI,在未来。

    【讨论】:

    • 谢谢您,先生,您的回答非常翔实! :) 如果第三方应用程序需要,我将在未来实施 OAuth。目前我将使用基于 cookie 的身份验证。
    猜你喜欢
    • 2015-08-27
    • 2017-01-28
    • 2017-12-07
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2011-05-11
    • 2021-10-01
    相关资源
    最近更新 更多