了解OAuth和客户端会话

时间:2011-03-10 07:20:00

标签: oauth twitter

我正在了解OAuth,其目标是允许访问我网站的访问者使用Twitter登录。我一直在使用基于Python的oauth2库作为学习工具,我想我已经掌握了大部分内容。

我了解在用户使用服务进行身份验证后(在本例中为Twitter),用户将被发送到包含参数oauth_tokenoauth_verifier的回调网址。

我无法理解的是在用户浏览器中存储此信息的正确方法。如何在后续请求中识别这些值?我是否需要像普通网站一样创建会话系统,或者在OAuth中是否存在一些不必要的魔法呢?

2 个答案:

答案 0 :(得分:3)

如何处理访问您网站的人的客户会话不受OAuth保护,这仍然由您(以及通常的会话管理框架)决定。

所有OAuth都告诉您用户确实是他声称的Twitter用户。然后,您可以将此信息与您网站上的用户会话相关联(就像登录屏幕在您自己的页面上一样)。

答案 1 :(得分:1)

twitter API中有oauth_tokenoauth_verifier两种类型

首先是请求令牌,每个进程总是不同的,可以使用getRequestToken方法保存到会话中

我在PHP视图中讲述,但逻辑在任何语言中都是相同的 /

* Get request token */
$request_token = $connection->getRequestToken(OAUTH_CALLBACK);

/* Save request token to session */
$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];

另一个是通过getAccessToken方法

重新获得的 accessstoken:
 $access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);

Array
(
    [oauth_token] => 223961574-mEctH7SHai######
    [oauth_token_secret] => G7Buyxn4okF31Ln3ulAh#####
    [user_id] => 223961574
    [screen_name] => ltweetl
)

这些令牌与您在Twitter上注册的应用程序中的令牌相同

已经在下面的页面中给出了......

<强> http://dev.twitter.com/apps/ {YOUR_APP_ID} / my_token。