OmniAuth后创建回调?

时间:2012-11-14 17:44:20

标签: ruby-on-rails omniauth

当使用OmniAuth(任何策略)创建新用户时,我必须运行一些代码(订阅外部邮件列表)。该设置几乎与Ryan Bates'截屏:

http://railscasts.com/episodes/241-simple-omniauth?view=asciicast

到目前为止,我还没有找到合适的方法来挂钩中间件中的代码。当控制权返回到Rails级别时,数据将作为user = User.from_omniauth(env["omniauth.auth"])传递,并且没有任何内容表明用户是否刚刚创建过。

解决方法可能是用户的标志,默认为false,在会话#create中设置为true。但是必须有更好的方法,还没有? : - )

感谢您的提示!

1 个答案:

答案 0 :(得分:0)

您可以使用:params选项构建网址,例如

omniauth_authorize_path(:user, :facebook, {var: 'value', var2: 'value2'}

然后在回调中你会回到request.env [' omniauth.params']

此处的一些示例 - https://github.com/intridea/omniauth/issues/390

此处 - Passing random url params to OmniAuth