在注销之前,Devise current_user为nil

时间:2016-05-26 10:03:05

标签: devise rails-api ruby-on-rails-5

我正在开发一个运行在Ruby 2.3.0和Rails 5.0.0.alpha上的Rails 5 api项目

我创建了覆盖Devise :: SessionsController的SessionsController类 sign_in方法如下

# POST /resource/sign_in
  def create
    # Devise code
    self.resource = warden.authenticate!(auth_options)

    # add more code
    user = User.find_for_database_authentication(email: user_params[:email])
    return invalid_login_attempt unless user
    return invalid_login_attempt unless user.valid_password?(user_params[:password])

    # reset json token when user request new session
    @token = JsonWebToken.encode(user, user.password)
    user.json_token = @token
    user.save!
    sign_in(resource_name, user)
    @message = I18n.t 'devise.sessions.signed_in'
    yield resource if block_given?

    render 'users/token'
  end

退出方法为

# DELETE /resource/sign_out
def destroy
    # current_user is nil when went to here
    sign_out(resource_name)  
    @message = I18n.t'devise.sessions.signed_out'
    yield if block_given?
    render 'users/logout'
end

在我开始行之前

 sign_out(resource_name)  

current_user的值为nil

我不知道原因。 我的理解是值不能为零,其值是用户登录的

我该如何解决这个问题?

由于

0 个答案:

没有答案