使用Rails的omniauth成功登录后保存Comment对象
在用户通过omniauth (Twitter,Facebook或OpenID)成功登录后,我希望rails更新或存储Comment。
- A(未登录)用户填写评论表单。 post那个。
- 用户获得一个omniauth页面,她可以选择登录方式:Twitter,Facebook或OpenID。
- 一旦用户成功从oAuth返回,我想存储(或发布)Comment。
我有这个工作,使用会话变量,但这不是非常线程安全的:如果用户有多个评论标签打开与相同的会话,它将中断。
我应该以未发布的状态将注释保存到数据库,并在返回后切换它吗? 如果是这样,如何知道如何切换正确的评论? 问题类似于上述会话问题。
有没有办法简单地传递comment-object和omniauth,并在用户从成功登录返回时收回它?
或者我可以传递一些哈希字符串,我可以在成功返回后提取?
编辑:完成重写以简化和澄清问题。
将postID与评论文本一起存储在会话中。 在成功validation后,使用存储的ID查找post并为其构建评论对象。
更新 – 如果身份validation失败,请删除所有此类条目。
- 未初始化的常量User :: Authorization | omniauth
- 为OAuth创建签名和Nonce(Ruby)
- 获取(omniauth-facebook)和(omniauth-twitter)工作
- 仅使用omniauth进行身份validation时,在设计中配置路由
- OmniAuth Strategies Facebook NoAuthorizationCodeError(必须传递`code`参数或签名请求(通过`signed_request`参数):
- 使用Devise和Omniauth的路由问题
- 记得用OmniAuth登录
- OmniAuth Facebook过期令牌错误
- 是否可以使用OmniAuth获取Gmail oauth或xauth令牌?