我正在使用 Omniauth 让用户注册 Facebook 帐户。当他们第一次点击 auth 链接时,我会将他们引导到注册页面,让他们输入一些额外的信息,除非他们已经有我的应用程序的帐户。
会话控制器
def create_facebook
#make an environment variable
auth = request.env['omniauth.auth']
if User.find_by_provider_and_uid(auth["provider"], auth["uid"])
user = User.find_by_provider_and_uid(auth["provider"], auth["uid"])
session[:user_id] = user.id
redirect_to lessons_path, flash[:notice] => "Signed in!"
else
#go to signup page to get additional info
redirect_to new_user_path(:auth => auth) #problem
end
end
在这种情况下,我使用 URL 中的参数传递整个 auth 哈希,因为我想调用User.create_with_omniauth(auth)
. Users#new
我应该避免这样做吗?其他选择是什么?