在春季引导应用程序中,我需要实现联合身份验证-自定义jwt和OAuth提供商(谷歌、facebook等)。我的引导应用程序只用作移动应用程序的API。因此,我的计划是为所有请求生成自定义JWT,但我不知道如何处理OAuth身份验证并将其转换为custon。也许我很穷,知道它是如何在移动客户端上工作的。
那么,有人有优雅而简单的解决方案的实现示例吗?提前感谢!
发布于 2022-11-16 14:40:20
您想要使用的一些“社会”身份提供者很可能要么不允许您直接使用他们的授权服务器,要么就不会交付JWT(有些只支持令牌内省)。
我强烈建议您选择一个能够进行身份联合的OIDC authorization-server来代理所有异构身份提供者。有很多解决方案,不管是前提解决方案(如Keycloak)还是云中解决方案(Auth0是一个示例,但几乎每个云提供商都有自己的解决方案)。这还将为您提供一个集中的位置来处理您可能需要的其他用户安全数据(比如角色)。
此授权服务器将是您的Spring的唯一标识颁发者,您将其配置为resource-server.详情请参见本教程。
对于移动客户端,我所做的方法是将用户从应用程序重定向到授权服务器进行登录(这是在系统浏览器中打开的),然后设置“深度链接”以响应本机应用程序中打开的授权代码。结束OAuth2授权代码流的框架(将代码交换为令牌)取决于编写本地应用程序所使用的框架。
https://stackoverflow.com/questions/74463233
复制相似问题