我有一个Twitter网络应用程序,允许用户从我的网站提交推文。但是,每次提交新推文时,他们都必须重新登录。有没有办法保存OAuth会话,并且在用户清除浏览器缓存之前不提示登录屏幕?
答案 0 :(得分:4)
当您在用户验证了您之后从Twitter获得回调时,您将在请求的标题中收到auth_token;你打算缓存那个令牌,并在每次用户发出请求时提供它。
听起来你没有缓存该令牌并在用户提出请求时提供它。
答案 1 :(得分:4)
您需要存储oauth_token
,您可以对所有请求使用相同的内容。
访问令牌持续多长时间?
我们目前没有过期访问权限 令牌。您的访问令牌将是 如果用户明确拒绝,则无效 您的应用程序从他们的设置 或者如果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通常用于识别用户。