问题出在第4步,因为omniauth回调网址sessions#create
的{{1}}存储了身份验证。
request.env['omniauth.auth']
的相关位:
sessions_controller
...它将我带到我的用户控制器,它显示一条可爱的小消息,提示用户(a)以另一个用户身份登录我的网站,或(b)更新他们的帐户以使用此Facebook信息。除了我无法再访问def create
return link_accounts if signed_in?
if params[:email]
create_session_from_login
elsif env['omniauth.auth']
create_session_from_facebook
else
redirect_to login_path, alert: "Couldn't login!"
end
end
private
def link_accounts
auth = env['omniauth.auth']
redirect_to user_link_accounts_path current_user unless current_user.email == auth[:info][:email]
end
。
如何在请求之间保留身份验证信息?它对于request.env['omniauth.auth']
来说太大了......我也希望它能够在用户对页面执行操作之后找到它(例如,单击链接 - 所以我可以在服务器端发出一个请求在实际的FB auth发生之后),但我不想将它存储在页面上......