如何通过 Omniauth/Facebook 登录请求传递参数?
How can I pass parameters through a Omniauth/Facebook login request?
我整合了omniauth-facebook gem with devise。我注册并登录以工作,但我无法弄清楚如何将其他参数传递给 RegistrationsController 中的 facebook
回调方法,例如 url 用户启动了注册过程上。
我在初始 url 中包含的参数(例如,localhost:3000/auth/facebook?url="url"
)没有传递到我的注册控制器中的 facebook
方法。
erb link
<%= link_to "fb", facebook_omniauth_path(url: "url") %>
路线
get 'auth/facebook', as: 'facebook_omniauth'
get 'auth/facebook/callback' => 'registrations#facebook'
控制器
def facebook
@user = User.from_omniauth(request.env["omniauth.auth"])
if @user.persisted?
redirect_to root_path
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
有人知道如何在我的 facebook
方法中使用 url
参数吗?
omniauth.auth
默认不显示附加参数。您需要使用 omniauth.params
来检索 url
值,如下所示。
request.env["omniauth.params"]["url"]
我整合了omniauth-facebook gem with devise。我注册并登录以工作,但我无法弄清楚如何将其他参数传递给 RegistrationsController 中的 facebook
回调方法,例如 url 用户启动了注册过程上。
我在初始 url 中包含的参数(例如,localhost:3000/auth/facebook?url="url"
)没有传递到我的注册控制器中的 facebook
方法。
erb link
<%= link_to "fb", facebook_omniauth_path(url: "url") %>
路线
get 'auth/facebook', as: 'facebook_omniauth'
get 'auth/facebook/callback' => 'registrations#facebook'
控制器
def facebook
@user = User.from_omniauth(request.env["omniauth.auth"])
if @user.persisted?
redirect_to root_path
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
有人知道如何在我的 facebook
方法中使用 url
参数吗?
omniauth.auth
默认不显示附加参数。您需要使用 omniauth.params
来检索 url
值,如下所示。
request.env["omniauth.params"]["url"]