坚持推特OAuth会议

时间:2010-01-09 10:04:45

标签: oauth twitter

我有一个Twitter网络应用程序,允许用户从我的网站提交推文。但是,每次提交新推文时,他们都必须重新登录。有没有办法保存OAuth会话,并且在用户清除浏览器缓存之前不提示登录屏幕?

5 个答案:

答案 0 :(得分:4)

当您在用户验证了您之后从Twitter获得回调时,您将在请求的标题中收到auth_token;你打算缓存那个令牌,并在每次用户发出请求时提供它。

听起来你没有缓存该令牌并在用户提出请求时提供它。

答案 1 :(得分:4)

您需要存储oauth_token,您可以对所有请求使用相同的内容。

FAQ of Twitter API

  

访问令牌持续多长时间?

     

我们目前没有过期访问权限   令牌。您的访问令牌将是   如果用户明确拒绝,则无效   您的应用程序从他们的设置   或者如果Twitter管理员暂停你的   应用。如果您的申请是   暂停将有一个注意到你的   应用程序页面说它有   被停职了。

答案 2 :(得分:1)

您需要一个名为user和user_tokens的数据库表。在用户内部你有:id,user_oauth_secret,user_oauth_token。在user_token中,您需要以下列:id,user_id,token,created,expires。确保此令牌具有一些随机散列的唯一(和长)。现在,您可以将此令牌保存到用户的cookie中,并在以后找到正确的oauth数据。

答案 3 :(得分:1)

您需要存储两个令牌。

当您第一次发出OAuth请求时,它会显示Twitter身份验证屏幕。在auth之后,您的OAuth回调页面将为用户获取两个查询字符串参数“oauth_token”和“oauth_token_secret”。你需要在某个地方存储这些(可能在数据库中)。

然后,当您再次从Twitter请求OAuth权限时,发送两个令牌,用户将自动获得授权。

您不应该自己编写代码。那里有很多OAuth库。

答案 4 :(得分:0)

您必须与用户保持长会话并保存访问令牌。 Cookie通常用于识别用户。