gpt4 book ai didi

ruby - 为 Heroku Ruby Sinatra 应用程序强制执行 HTTPS 的最简单方法

转载 作者:行者123 更新时间:2023-12-02 21:22:25 25 4
gpt4 key购买 nike

我有一个在 Heroku 上创建的应用程序,它是用 Ruby(不是 Rails)和 Sinatra 编写的。它托管在默认的 herokuapp 域上,因此我可以使用 HTTP 和 HTTPS 来寻址该应用程序。该应用程序请求用户凭据,我将其转发到 HTTPS 调用,因此转发部分是安全的。我希望确保我的用户始终安全地连接到我的应用程序,这样凭据就不会以明文形式传递。

尽管进行了大量研究,但我还没有找到解决这个简单要求的方法。

是否有一个简单的解决方案,无需将我的应用程序更改为 Ruby Rails 或其他方式?

谢谢

艾伦

最佳答案

我使用的助手如下所示:

def https_required!
if settings.production? && request.scheme == 'http'
headers['Location'] = request.url.sub('http', 'https')
halt 301, "https required\n"
end
end

然后我可以将其添加到我想要强制使用 https 的任何单个路由中,或者在 before 过滤器中使用它来强制使用一组 url:

before "/admin/*" do
https_required!
end

关于ruby - 为 Heroku Ruby Sinatra 应用程序强制执行 HTTPS 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26671594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com