我正在了解OAuth,其目标是允许访问我网站的访问者使用Twitter登录。我一直在使用基于Python的oauth2库作为学习工具,我想我已经掌握了大部分内容。
我了解在用户使用服务进行身份验证后(在本例中为Twitter),用户将被发送到包含参数oauth_token
和oauth_verifier
的回调网址。
我无法理解的是在用户浏览器中存储此信息的正确方法。如何在后续请求中识别这些值?我是否需要像普通网站一样创建会话系统,或者在OAuth中是否存在一些不必要的魔法呢?
答案 0 :(得分:3)
如何处理访问您网站的人的客户会话不受OAuth保护,这仍然由您(以及通常的会话管理框架)决定。
所有OAuth都告诉您用户确实是他声称的Twitter用户。然后,您可以将此信息与您网站上的用户会话相关联(就像登录屏幕在您自己的页面上一样)。
答案 1 :(得分:1)
twitter API中有oauth_token
和oauth_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
方法
$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。强>