0

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

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

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

解决方法可能是用户上的一个标志,该标志默认为 false,并在 session#create 中设置为 true。但是必须有更好的方法,不是吗?:-)

感谢您的提示!

4

1 回答 1

0

您可以使用该:params选项来构建 URL,如下所示

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

然后在回调中,您将返回 request.env['omniauth.params']

这里的一些例子 - https://github.com/intridea/omniauth/issues/390

同样在这里-将随机 url 参数传递给 OmniAuth

于 2012-11-14T18:38:17.333 回答