2

我正在尝试为多个提供商实施设计和 Ominauth。一种情况是:用户首次使用 Twitter 登录,而无需先创建帐户。

为了处理这个问题,我将用户从回调链接 ( /auth/twitter/callback) 重定向到注册页面以填写电子邮件地址。

但是,我想将回调链接中的身份验证信息{:provider => "twitter", :uid =>"123"}带到注册页面 ( new_registration_path)。然后当用户提交注册表单时,身份验证将与帐户信息一起被捕获。

我该怎么做呢?我试过了

redirect_to(new_user_session_path, {:service => service})

service = {:provider => "twitter", :uid =>"123"} 但是服务没有作为参数传递。

我做错了什么?我需要修改 Devise 的源代码吗?

谢谢你。

4

1 回答 1

1

你可能正在寻找这个:

redirect_to(new_user_session_path(:argument => "value"))

在重定向后的控制器中(可能是 UserSessions#new),您可以使用以下命令访问参数:

params[:argument]

您需要将参数传递给路径助手而不是 redirect_to 方法。

在您的示例中,它应该是:

redirect_to(new_user_session_path(service))

在重定向后的控制器中(可能是 UserSessions#new),您可以使用以下命令访问参数:

params[:provider]
params[:uid]

或者

redirect_to(new_user_session_path(:service => service))

params[:service][:provider]
params[:service][:uid]
于 2013-02-23T06:17:32.473 回答