我正在运行一个 Rails 应用程序,该应用程序允许用户成功通过 LinkedIn 进行身份验证并导入他们的 LinkedIn 个人资料数据。我遇到的(大)问题是,与一个首先登录的用户关联的 cookie 数据即使在他们退出后仍然存在,并且在他们通过 LinkedIn 进行身份验证后被另一个单独的用户提取。第一个用户的数据覆盖了第二个用户的数据……大问题。
非常感谢您的帮助!
这是我的会话控制器:
class SessionsController < ApplicationController
def new
end
def create
if env['omniauth.auth']
user = User.from_omniauth(env['omniauth.auth'])
session[:user_id] = user.id
redirect_to auth_path
flash[:success] = 'Signed in with LinkedIn.'
else
user = User.find_by_email(params[:session][:email])
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
flash[:success] = 'Signed in the old-fashioned way.'
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
end
def destroy
cookies.delete(:remember_token)
session[:user_id] = nil
redirect_to root_path
end
end