我是否需要验证每个API请求?

时间:2012-06-09 00:11:00

标签: php api authentication twitter oauth

这似乎是一个简单的问题,但我无法在任何地方找到简单的解释。我确定我只是在寻找错误的东西,所以请耐心等待......

如果我使用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的要点(更重要的是,一般的身份验证)?

1 个答案:

答案 0 :(得分:3)

OAuth协议使用access_token之类的会话ID,当您的用户已经授权访问您的网站时,您可以使用API​​服务器授予您访问其API的access_token

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