如何在覆盖 Devise 控制器的 SessionsController#create 操作时设置 header?

How do I set a header when overriding the SessionsController#create action of Devise controllers?

我写了一个小方法来生成JWT并保存在用户模型上。我现在正在尝试覆盖 SessionsController#create 方法以在成功登录时发回令牌。这就是我尝试这样做的方式:

    # SessionsController#create
    def create
        super do |user|
            if user.persisted?
                user.generate_auth_token!
                response.set_header('Authorization', 'Bearer ' + user.auth_token)
            end
        end
    end
    # user model
    def generate_auth_token!
        payload = { user_id: self.id }
        token = JWT.encode(payload, Rails.application.credentials.secret_key_base, 'HS256')
        self.auth_token = token
        self.auth_token_expiration = DateTime.now + 30.days
        self.save!
    end

令牌生成得很好,当我通过 rails 控制台检查用户记录时,它似乎保存在用户模型中。

我正在使用 Postman(类似于 cURL,但具有漂亮的 GUI)检查登录后的 headers,但没有 'Authorization' header。

尝试这样做response.headers['your_header_name'] = 'value'