2011-03-10 148 views
0

我正在学习OAuth,目的是让访问者能够使用Twitter登录我的网站。我一直在使用基于Python的oauth2库作为学习工具,我想我可以获得大部分的功能。了解OAuth和客户端会话

据我所知,用户通过服务进行身份验证(本例中为Twitter)后,用户将被发送到回调URL,参数oauth_tokenoauth_verifier

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

回答

3

您如何处理访问您网站的人的客户会话不在OAuth覆盖范围内,而这仍由您(以及常用的会话管理框架)决定。

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

1

有在微博API

前两种类型的oauth_tokenoauth_verifier请求令牌即总是在每个过程中的不同,可以被保存到会话中使用getRequestToken方法

1M在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']; 

另一个是的accessToken:经由getAccessToken方法retrived

$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。