当使用OmniAuth(任何策略)创建新用户时,我必须运行一些代码(订阅外部邮件列表)。该设置几乎与Ryan Bates'截屏:
http://railscasts.com/episodes/241-simple-omniauth?view=asciicast
到目前为止,我还没有找到合适的方法来挂钩中间件中的代码。当控制权返回到Rails级别时,数据将作为user = User.from_omniauth(env["omniauth.auth"])
传递,并且没有任何内容表明用户是否刚刚创建过。
解决方法可能是用户的标志,默认为false,在会话#create中设置为true。但是必须有更好的方法,还没有? : - )
感谢您的提示!
答案 0 :(得分:0)
您可以使用:params
选项构建网址,例如
omniauth_authorize_path(:user, :facebook, {var: 'value', var2: 'value2'}
然后在回调中你会回到request.env [' omniauth.params']