如何从facebook/google/派生自定义登录令牌单页应用程序的spring(启动)oauth2身份验证?

gdx19jrr  于 2021-09-30  发布在  Java
关注(0)|答案(1)|浏览(317)

我已经设置了一个正在运行的应用程序,该应用程序具有:
身份验证服务器
几个资源服务器
javascript前端
对于身份验证,我使用spring security的oauth2堆栈将jwt令牌分发给成功通过身份验证的用户。登录信息收集在前面的javascript中,然后请求身份验证服务器提供身份验证令牌并将其存储。这一切都适用于我的应用程序。
我现在想做的是集成第三方登录服务,如谷歌或facebook。目前,我正处于一个可以从javascript前端启动该过程的阶段,然后身份验证服务器执行它的神奇操作,并与第三方登录提供商进行通信。到目前为止,登录过程是成功的,我得到了所需的信息,实际上只是电子邮件地址。
但现在我被卡住了。我在服务器上有身份验证信息,但现在我需要构造一个我自己的身份验证jwt令牌,并将其交给我的javascript前端。有谁能给我一个如何实现这一目标的提示吗?

yqhsw0fo

yqhsw0fo1#

spring安全示例中的jwt登录示例演示了如何为自己的目的创建jwt令牌。关键是确保在设置所述令牌(在您的示例中已经是这种情况)之前已经进行了身份验证。
请注意,该示例使用 com.nimbusds:nimbus-jose-jwt 作为Spring Security 的依赖关系在内部已经依赖于此库。你也可以考虑使用 io.jsonwebtoken:jjwt-api 或者另一个图书馆。io有一个支持创建jwt的库的有用列表,您可以通过java进行筛选,并单击存储库以获取关于其中任何一个库的更多信息。
在任何情况下,该示例都应该很容易地适应您选择的库,并且在SpringSecurity中用于验证jwts的现成支持应该可以工作。

相关问题