我使用前端和后端API服务器来实现Ruby/Sinatra web应用程序。表单将发布到前端应用程序.rb:中的"/login"路径
post '/login' do
uri = URI.join("http://#{settings.api}:#{settings.api_port}",
"/user/", "validate")
response = Net::HTTP.post_form(
uri, 'email' => params[:email],
'password' => params[:password])
h = response.code == "200" || response.code == "401" ?
JSON.parse(response.body) : {}
if h["status"] == "success"
# Save the user id inside the browser cookie.
# This is how we keep the user
# logged in when they navigate around our website.
session[:user_id] = h["user_id"]
puts session[:user_id]
redirect '/home'
else
# If user's login doesn't work, send them back to the login form.
flash[:notice] = "Login failed due to #{h["status"]}"
redirect '/login'
end
end
post请求及其参数通过HTTP发送到后端服务器。后端API服务器将使用JSON进行响应,JSON中有一个状态字段来建议用户是否成功通过身份验证。
我在浏览器中收到以下消息,上面写着"连接不安全"。在此处输入图像描述。是否有额外的安全配置,我必须包括在前端app.rb中?
您可以尝试在app.rb文件中添加以下配置:
configure :development, :test do
set :force_ssl, true
end
configure :production do
set :force_ssl, true
end
请参阅"在Sinatra应用程序中强制使用SSL",了解在Sinatr应用程序中强行使用SSL以及它如何对您的情况有所帮助。