我有 3 个应用程序需要使用 SSO、https 和设计进行身份验证的组合相互通信。我想弄清楚的是如何在一个 Rails 应用程序上执行登录并让相关的(cookie、会话等)沿着链传递,以便外部 Web 浏览器可以查看信息。
这是3个应用程序的流程。
- 第一个应用程序是WEB PORTAL。它将一堆 sso(单点登录)相关的字符串发送到 api。
- 第二个 API_APP 应用程序验证信息并将其传递给 rails 应用程序。
- 此 RAILS_APP 应用程序验证 api 的信息并使用 devise 的“sign_in_and_redirect”辅助方法登录用户
现在这是棘手的部分。如何将信息从 RAILS_APP 沿链传递回 WEB_PORTAL 以便它可以查看门户网站可以查看已登录的用户帐户?
更多信息:
我承认架构不太理想,但不幸的是目前无法更改。WEB_PORTAL 实现并不那么重要,但我认为 API_APP 需要一些工作。
API_APP 将信息格式化为网络 http 请求,如下所示
uri = URI.parse(MY_RAILS_APP_URI)
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri, initheader = {'Content-Type' =>'application/json'})
request.body = {"email" => email, "id" => id, "email" => email, "timestamp" => timestamp, "token" => token}.to_json
response = http.request(request)
location = response.header['location'] #if the RAILS_APP returns a 302
关于如何让 WEB_PORTAL 登录的任何想法?