实施Google OAuth2.0的工作流程

wsewodh2  于 2022-09-21  发布在  Go
关注(0)|答案(1)|浏览(324)

我正在尝试为我的应用程序实现Google身份验证,下面是我试图设置的工作流程。

1.首先,用户向Google进行身份验证,获得访问令牌。
1.用户将使用该令牌向后端服务发起请求。
1.后台服务将与Google核对以验证这些令牌
1.经过验证后,后端服务会将客户端请求的信息发送回用户

我对此有几个问题:

1.这是正确的实施方式吗?
1.如何避免后台和前端之间的每一次请求都要与Google进行检查?

o4hqfura

o4hqfura1#

这是一种正确的方式。这要看细节了。如果我理解正确的话,您可以控制前端和后端(这两个都是您的应用程序)。如果是这种情况,那么您宁愿只使用Google服务来对用户进行身份验证(所以使用OpenID Connect流来获取ID令牌来验证用户的身份)。在此之后,您将让您的后端发布访问令牌或与您的前端建立会话。这样,你就不必在每次有人向你的后台提出请求时,都向谷歌索要令牌的有效性。

从Google、Facebook等获得的访问令牌应该与它们的API一起使用。您可以使用它来授权访问您自己的后端,但然后您必须在每个请求上调用Google来验证令牌。您还与Google关于访问令牌使用的详细信息紧密相关--哪些范围可用、令牌返回哪些数据、过期时间等。

如果访问令牌是JWT,那么您可以在后台自己进行验证。你不必每次都打电话给发行人。但是,如果我没记错的话,谷歌发行的是不透明的令牌,所以这里不应该这样说。

要而论之。如果您控制了前端和后端,那么请使用Google进行身份验证,然后在您的应用程序之间启动一个会话。这将更易于维护,也更安全,因为您不必在浏览器中处理令牌。

相关问题