如何使用一个 SSO 处理不同的 Symfony 项目

问题描述 投票:0回答:1

我有两个 Symfony 项目: #1 项目存储用户信息和组(其中包含用户权限),项目 #2 使用这些用户信息和组信息并存储其他数据(如用户创建的书籍和文章(由存储在 # 中的 userId 引用) 1)).

主要问题是将用户信息检索到#2项目中,例如名字。如何正确地做到这一点?实现这一目标的最佳方法是什么?

  • 创建一个信使,当项目 #1 + Symfony 与用户和所有链接实体捆绑在一起的数据发生更改时更新项目 #2(以便在所有项目之间复制用户数据)
  • 拥有相同的数据库
  • 进行 REST 调用

这并不是一个真正与 Symfony 相关的问题,而是一个架构问题......

symfony architecture
1个回答
0
投票

这取决于设置,但如果我理解正确,这可能是一个可能的选择。

您可以创建一个小型 Symfony 项目来进行身份验证。该项目将处理登录方法和角色。使用此数据,您可以创建 JWT 令牌。这可以在您的其他应用程序中使用。令牌可以包含基本信息,例如用户名、电子邮件、角色等

示例。

www.yourapplication.com -> 用户未登录 -> 重定向到身份验证器示例 ->authenticator.yourapplication.com/login?callback_url=www.yourapplication.com/login

在authenticator.yourapplication.com应用程序中 -> 处理登录 -> 生成 jwt 令牌 -> 带参数重定向回回调 url www.yourapplication.com/login?jwt=ey.......

返回 www.yourapplication.com 验证 jwt 令牌并在有效时设置用户登录。

为了安全起见,您可以通过发布请求执行第一个请求并进行更多安全检查。

© www.soinside.com 2019 - 2024. All rights reserved.