gpt4 book ai didi

facebook - 社交 SSO 在微服务架构中是什么样子的?

转载 作者:行者123 更新时间:2023-12-05 07:43:10 27 4
gpt4 key购买 nike

晚安

我试图掌握社交 SSO(Facebook/Google 等)如何在微服务架构中工作的概念。

场景

假设我有 2 个后端微服务(Order、User)和一个前端(WebApp)

  • 用户:包含用户个人资料详细信息、电子邮件、姓名、地址。
  • Order:持有链接到用户的订单列表
  • WebApp:提供与两个后端服务交互的前端。

添加Social SSO,是为了简化用户注册网站的过程http://www.myproduct.com

当一个人使用 Social SSO 时,我想在用户服务中创建一个用户帐户。

问题

假设用户在 WebApp 上单击“使用 Facebook 登录”并以“John”身份登录

  1. 在我的用户中为 John 创建帐户的最佳方法是什么服务 ?

  2. 以 John 身份登录后,WebApp 如何传播身份John 的订单服务?

  3. 订单服务如何验证 John 是否已登录?

  4. 相互依存的服务订单和用户如何相互信任?

疑虑

  1. 下游服务将与授权服务器(Facebook、Google)变得非常“健谈”

谢谢

丹尼尔

最佳答案

  1. 在我的用户服务中为 John 创建帐户的最佳方法是什么?

这里没什么可做的,只需从 FB 获取用户详细信息并调用您的用户创建端点。对于 RESTful API,您可能希望对 https://your_api_gateway/users 执行 POST。

  1. 一旦以 John 身份登录,WebApp 如何将 John 的身份传播到订单服务?

一种选择是使用 token 微服务。在登录时,您将创建一个长生命周期的身份验证 token 和一个短生命周期的访问 token 。身份验证 token 是您永远不会共享的信任来源。您将访问 token 返回给客户端 webapp。从客户端到您的任何微服务的所有调用都会将该访问 token 作为请求的一部分发送。另一种选择是简单地使用 FB/Google 生成的访问 token 。

  1. 订单服务如何验证 John 是否已登录?

您的订单服务将在请求中收到一个访问 token 。只要访问 token 有效,您就可以假定 John 已登录。

  1. 相互依存的服务订单和用户如何相互信任?

访问 token 由 token 微服务签名 - 这应该是一个受信任的服务 - 它可以包含可以由您的任何微服务进一步验证的附加信息

  1. 下游服务将与授权服务器(Facebook、Google)变得非常“健谈”

生成访问 token 后,您无需再次调用 FB 或 Google,直到您的网络应用决定用户需要再次进行身份验证。

关于facebook - 社交 SSO 在微服务架构中是什么样子的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43939970/

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