【问题标题】:Do I need to Authenticate Every API Request?我需要对每个 API 请求进行身份验证吗?
【发布时间】:2012-06-13 00:22:54
【问题描述】:

这似乎是一个简单的问题,但我在任何地方都找不到简单的解释。我确定我只是在寻找错误的东西,所以请多多包涵……

如果我使用Twitter REST API(例如)并使用 OAuth 对用户进行身份验证,在初始身份验证后发送 API 请求时,如何向 Twitter 验证我是否拥有适当的凭据?每次我想与 API 通信时,我是否应该提交 AuthToken(通过GET/POST 变量)?看起来很简单,但 Twitter API 中没有针对这些方法的“可选”身份验证参数。

更新:

由于我使用 PHP 来访问 Twitter API,我偶然发现了这段代码:

$connection = getConnectionWithAccessToken("abcdefg", "hijklmnop");
$content = $connection->get("statuses/home_timeline");

这是否意味着您每次想要访问 API 时都只需进行身份验证?

例如:

In index.php:
    1. authenticate
    2. access desired API methods
    3. Finish loading page

User navigates to page2.php

In page2.php:
    1. authenticate...again
    2. access desired API methods...again
    3. Finish loading page

User navigates to page3.php

In page3.php:
    1. authenticate...again!
    2. access desired API methods...again
    3. Finish loading page

每次像这样进行身份验证似乎令人沮丧,但似乎有必要。以上是否解释了 OAuth 的要点(更重要的是一般的身份验证)?

【问题讨论】:

  • 您使用的是 2 还是 3 腿身份验证?

标签: php api authentication twitter oauth


【解决方案1】:

OAuth 协议使用access_token 类似 Session ID,当您的用户已经授权到您的站点时,您可以使用 API 服务器为您提供的access_token 访问他们的 API。

因此,从技术上讲,您并没有对每个请求进行身份验证,Twitter 仅使用“SessionID”来识别您的进一步请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2017-10-14
    • 2021-10-16
    • 2016-02-08
    • 1970-01-01
    相关资源
    最近更新 更多