使用 Google OAuth2 授权服务器保护 Spring RESTful API

Secure Spring RESTful API with Google OAuth2 Authorization server

我计划在 AngularJS 上使用 Spring RESTful API 后端和客户端创建应用程序。

我想用 Google OAuth2 授权服务器保护我的 Spring RESTful API。

我有一个架构问题:

在 Google 中成功授权后,我将从 Google OAuth2 授权服务器接收 accessToken。我是否需要将此 accessToken 传输到我的客户端应用程序(AngularJS)或者我需要在我的后端应用程序中引入一些自己的安全层(例如使用 JWT)并基于 Google accessToken 发布自己的 jwtToken并且仅将此令牌传输到我的客户端应用程序?

换句话说 - 从 Google 向我的客户端 AngularJS 应用程序显示 accessToken 并在我自己的 RESTful API 中使用它进行身份验证是否安全?

此外,对于我的 RESTful API,我是否需要在客户端应用程序每次调用后使用 Google Auth 服务器验证 Google accessToken(AngularJS) 到我的安全 RESTful API ?

is it safe to show accessToken from Google to my client AngularJS app and use it for an authentication in my own RESTful API?

这实际上不是您的访问令牌,而是供您的客户使用的。给他们令牌是绝对安全的,因为他们必须在每次请求时将令牌发送到您的后端。这是因为 REST 的性质。

in case of my RESTful API do I need to validate Google accessToken with Google Auth server after each call from my client application(AngularJS) to my secure RESTful API ?

是的,只要您的客户向您的后端发送令牌,您就必须调用 Google。令牌失效的原因有多种。例如,用户可以撤销您的应用程序的访问权限,令牌已过期等。

More reading on implementing a REST backend with Google OAuth 2