使用oauth2 + JWT进行Springboot社交登录

时间:2020-05-12 09:43:48

标签: java spring spring-boot jwt spring-security-oauth2

我正在开发REST整体服务。有了它,我需要能够通过社交网络注册用户,将其内部存储在我的数据库中,并通过某些权限授权他们。之后,我需要该服务使用JWT进行安全保护,该服务需要以无状态模式运行。

过去一周我读了很多文章,但它们要么只解释了其中的一小部分,要么不解释其使用的内容和原因。

我正在使用Spring Security 5,它可以与社交网络实现会话登录的“轻松”集成,而我使用

.oauth2Login()

在我的WebSecurityConfigurerAdapter的configure方法中,但是它利用了会话创建。如果我告诉它是无状态的,它将无法运行。

此外,我设法在服务发布令牌的地方设置了JWT安全性,但是我不知道如何连接这两个令牌。我已经看到了

oauth2ResourceServcer()

方法具有jwt方法,但是我无法掌握应如何实现它。

有人可以提出任何建议或示例吗?任何帮助将非常感激。

亲切问候

1 个答案:

答案 0 :(得分:0)

社交登录是一个接一个地实现的,没有一个库提供无缝的开箱即用的解决方案,该解决方案将包含所有社交平台。

启用spring安全性将为您提供额外的保护,并让您自己管理用户,而无需社交登录。

对于使用社交登录的项目,我一直使用keycloak。 它会为您处理所有安全性,并具有nice integration with spring boot。 此外,它提供了登录表单(无需社交登录),因此您将为用户提供充分的灵活性。

对我而言,主要缺点是自定义UI确实很麻烦,我在nginx https反向代理后面运行它时遇到了麻烦,但是它是可行的,并且还有大量资源。