持久化Twitter OAuth会话

持久化Twitter OAuth会话,oauth,twitter,Oauth,Twitter,我有一个Twitter web应用程序,允许用户从我的网站提交推文。但是,他们必须在每次提交新tweet时重新登录。有没有办法保存OAuth会话,并且在用户清除浏览器缓存之前不提示登录屏幕?您需要一个名为user和user_tokens的db tables。在您拥有的用户内部:id、user\u oauth\u secret、user\u oauth\u token。在用户\令牌中,您需要以下列:id、用户\ id、令牌、已创建、过期。确保这个令牌是唯一的(并且很长),带有一些随机散列。现在,您

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

您需要一个名为user和user_tokens的db tables。在您拥有的用户内部:id、user\u oauth\u secret、user\u oauth\u token。在用户\令牌中,您需要以下列:id、用户\ id、令牌、已创建、过期。确保这个令牌是唯一的(并且很长),带有一些随机散列。现在,您可以将此令牌保存到用户的cookie中,并在以后找到正确的oauth数据。

当用户验证您后从Twitter收到回调时,您将在请求的标题中收到一个auth_令牌;您需要缓存该令牌,并在用户每次发出请求时提供它


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

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

您需要存储两个令牌

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

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


你不应该自己编写代码。有很多OAuth库。

您需要存储
OAuth\u令牌,您可以对所有请求使用相同的令牌

访问令牌持续多长时间

我们目前没有使访问过期 代币。您的访问令牌将被删除 如果用户明确拒绝,则无效 您的应用程序将从其设置中删除 或者如果Twitter管理员暂停您的 应用如果你的申请是 暂停,您的手机上会有一张便条 应用程序页面上说它已经 他被停职了


用户令牌表的用途是什么?我不能将所有内容都存储在用户表中吗?因为它是1:n的关系。用户可以从不同的计算机登录,但仍然可以在第一台计算机上登录。除非时间过期。我明白了。那么,哪些存储的用户令牌被发送到twitter?这是用户的秘密吗?哪一个是给饼干的?好的,对吗?我的应用程序会检查用户浏览的cookie,如果它与user_token.token匹配并且没有过期,则会发送相应的user.user_oauth_secreti。我认为您需要user_oauth_secret和user_oauth_token才能成功身份验证到twitter。您需要在用户登录后保存它们(它们作为get vars从twitter发送)。关于cookie,你是对的。这么多的令牌,这么混乱:)那么我需要缓存的是该用户的auth_令牌?