我计划在AngularJS上使用Spring RESTful API后端和客户端创建应用程序。
我想通过Google OAuth2授权服务器保护我的Spring RESTful API。
我有一个架构问题:
在Google成功授权后,我将从Google OAuth2授权服务器接收accessToken。我是否需要将此accessToken传输到我的客户端应用程序(AngularJS),或者我需要在我的后端应用程序中引入一些自己的安全层(例如使用JWT)并基于Google accessToken发布自己的jwtToken并仅将此令牌传输到我的客户端app?
换句话说 - 将Google的accessToken显示到我的客户端AngularJS应用并将其用于我自己的RESTful API中的身份验证是否安全?
另外,对于我的RESTful API,我是否需要在从客户端应用程序(AngularJS)调用我的安全RESTful API后,使用Google Auth服务器验证Google accessToken?
答案 0 :(得分:6)
将Google的accessToken显示给我的客户端AngularJS应用并将其用于我自己的RESTful API中的身份验证是否安全?
它实际上不是您的访问令牌,它意味着您的客户使用。向他们提供令牌是完全安全的,因为他们必须在每次请求时将令牌发送到您的后端。这是因为REST的本质。
如果是我的RESTful API,我是否需要在从客户端应用程序(AngularJS)调用我的安全RESTful API后,使用Google Auth服务器验证Google accessToken?
是的,只要您的客户向您的后端发送令牌,您就必须致电Google。令牌可以无效的原因有多种。例如,用户可以撤消应用程序的访问权限,令牌过期等等。
More reading on implementing a REST backend with Google OAuth 2