使用 Rack 中间件在每个请求上添加 api_key

发布于 2024-11-08 01:54:09 字数 450 浏览 2 评论 0原文

我使用 Devise token_authentication 服务和 ActiveResource 客户端。我希望在每个请求中自动设置 :auth_token 参数!

我尝试过这个,但这不起作用......

class AuthApp

    def initialize(app)
        @app = app
    end

    def call(env)
        status, headers, response = @app.call(env)

        request = Rack::Request.new(env)
        request.params[:auth_token] = 'jCxKPj8wJJdOnQJB8ERy'

        [status, headers, response]
    end

end

有什么想法吗?

I work with Devise token_authentication service and ActiveResource client. I wish set automatically :auth_token params in every requests !

I tried this, but this doesn't work...

class AuthApp

    def initialize(app)
        @app = app
    end

    def call(env)
        status, headers, response = @app.call(env)

        request = Rack::Request.new(env)
        request.params[:auth_token] = 'jCxKPj8wJJdOnQJB8ERy'

        [status, headers, response]
    end

end

Any idea ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人│生佛魔见 2024-11-15 01:54:09

如果您有包含此拉取请求的最新rack副本,您可以使用Rack::Request#update_param

request = Rack::Request.new(env)
request.update_param :auth_token, 'jCxKPj8wJJdOnQJB8ERy'

它将保留在中间件(以及 Rails)之间传递的 env 中。

If you have a recent copy of rack that includes this pull request, you can use Rack::Request#update_param:

request = Rack::Request.new(env)
request.update_param :auth_token, 'jCxKPj8wJJdOnQJB8ERy'

That will persist in the env that is passed among middlewares (and to Rails).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文