Twitter认证问题

1 投票
2 回答
524 浏览
提问于 2025-04-16 05:28

我有两个关于Twitter认证的问题(这样问会不会不礼貌?)。

第一个问题是,我想保存我收到的访问令牌,但它是一个字典对象。我是应该保存整个字典对象,还是只保存一些重要的部分呢?

第二个问题是,我想知道如何让用户登出。我找到一个链接可以帮助用户登出Facebook——Twitter有没有类似的登出方法呢?(或者说这个登出方法不好?) http://m.facebook.com/logout.php?confirm=1&next=

2 个回答

1

要访问API,你需要一个访问令牌的密钥和秘密。存储这些信息的方式并不重要,只要你有办法存储就行。你所给权限的应用程序会有自己的方法来保存这些数据。除非你是在创建一个新的OAuth应用程序,或者是在现有应用程序中添加支持。在这种情况下,你就需要用该编程语言的标准方式来存储密钥和秘密,比如在Python中可以用序列化或配置文件。

获得密钥和秘密的应用程序可以代表用户访问Twitter。

如果你想撤销某个特定的访问密钥,你需要以用户身份登录Twitter,然后去 http://twitter.com/settings/connections。在这个页面上,会列出所有拥有有效访问令牌的应用程序,你可以在这里撤销它们。需要注意的是,应用程序并不像用户那样登录,它们是通过访问密钥和秘密来进行身份验证的。

2

你需要明白的是,OAuth协议并没有定义“登录”和“登出”的概念,这些都是你自己应用程序的内容。OAuth是一种协议,允许一个消费者(你的应用)访问一个资源拥有者(你的用户)在资源提供者(这里是Twitter)存储的数据。

我应该存储整个字典对象,还是只存一些相关的部分呢?

据我所知,你只需要存储访问令牌,这样才能继续向服务器请求你需要的资源(如果要请求新的资源,可能需要获取另一个访问令牌)。请记住,这个令牌可能会过期,也可能会被用户直接通过Twitter撤销,而你可能并不知道。这是OAuth设计上的一部分。

我想知道如何让用户登出。

在OAuth中并没有“会话”这个概念,这个是与你的应用程序相关的内容。

撰写回答