Я использовал интерфейсный и внутренний сервер API для реализации веб-приложения Ruby / Sinatra. Форма будет отправлена по маршруту '/ login' во внешнем app.rb:
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
Запрос на отправку и его параметры отправляются через HTTP на внутренний сервер. А внутренний сервер API ответит JSON, в котором есть поле состояния, чтобы указать, прошла ли аутентификация пользователя успешно.
В браузере появляется следующее сообщение: «Соединение не защищено». введите описание изображения здесь . Есть ли дополнительные настройки безопасности, которые я должен включить в интерфейсный файл app.rb?