我们有一个 SAAS 软件,其中每个租户都有自己的一组用户,这些用户具有多种角色,例如具有不同权限的经理、用户、承包商等。 今天,我们将所有这些都存储在我们自己的数据库中,并拥有自己的登录名。因此,我们为每个租户创建一个帐户实体,每个用户都有一个指向该帐户实体的外键。用户还具有我们用于授权的角色。 因此,当用户登录时,我们会创建一个带有帐户 ID 和角色的 JWT 令牌。
我们希望添加功能来支持使用谷歌、Facebook、微软等以及我们现有的登录。因此,当创建租户时,可以添加用户列表,例如,[电子邮件受保护]、[电子邮件受保护]等。
当用户选择使用 google 登录我们的应用程序时,我们将重定向到 google 并对其进行身份验证并获取令牌作为回报。然而,这个令牌具有访问谷歌资源的角色。我们可以根据前面提到的预先创建的用户列表将用户映射到租户。我们现在希望客户端获得具有我们角色的 JWT 令牌,以便当客户端从不同的微服务调用我们的 API 时,它可以通过适当的授权访问我们的资源。
我需要如何实现这一目标的帮助。