我正在开发一个运行在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
我不知道原因。 我的理解是值不能为零,其值是用户登录的
我该如何解决这个问题?
由于