首页 > 解决方案 > 用于验证来自 Google 的 oauth2 令牌的 Spring Boot 应用程序

问题描述

我有我的 Spring Boot 应用程序,它提供了一些休息端点。那些其他端点需要安全性,我想为此使用 Oauth2。

我的想法是为此使用 Google oauth2 令牌。我不想在我的 Spring Boot 应用程序中提供登录功能,所以我只想检查 Bearer 令牌是否存在并从中获取用户信息以相应地显示他/她的数据。

我正在查看本教程,但我认为这不是我想要的

https://www.baeldung.com/spring-security-5-oauth2-login

标签: javaspring-bootoauth-2.0spring-security-oauth2

解决方案


我想解释一些在决定安全方法时应该考虑的场景:

  1. 如果您的应用程序用户存在于谷歌,意味着用户拥有谷歌帐户,那么您可以去谷歌授权服务器 oauth 2.0 https://developers.google.com/identity/protocols/OAuth2, 在这种情况下,您应该在谷歌开发者门户上注册,应用程序将在用户成功认证后收到访问和刷新令牌。之后,可以向 google 进行 OpenId 调用以获取用户信息 以上流程和集成将与您在 Quora 应用程序上看到“通过 google 登录”的链接相同。现在在服务中,您可以通过 google oauth 2.0 验证端点请求验证 Bearer 令牌,并调用 userinfo 端点来获取用户信息。如果您使用 JWT 令牌,则无需联系谷歌授权服务器进行令牌验证和用户信息调用。

  2. 第二种方法是使用 springBoot 构建您自己的 oauth 2.0 服务器 - https://spring.io/guides/tutorials/spring-boot-oauth2/ 使用 API 网关层进行令牌验证,并且可以使用 Spring Security 对微服务进行进一步授权。


推荐阅读