我在正确实施OAuth时遇到了麻烦。 我使用客户端/ API架构(Angular为Front,Node.js为back),我希望用户仅使用Google OAuth身份验证进行登录。Google OAuth2流和id_token刷新
这里是什么,我认为是暂时的正确方法(告诉我,如果我误解的东西):
- 角开一个谷歌弹出,询问用户的同意。
- 一旦用户同意,Google授权服务器将发回验证码。
- 此验证码被转发到API端点。
- 然后,API要求Google授权服务器将此代码交换为access_token,id_token和refresh_token。
- Google发送这3个令牌。
- API使用的access_token从谷歌API检索用户
- 的API仍然存在用户
这里是小dillema,在我看来,在的access_token和refresh_token应该存储到数据库和id_token应该发回给Angular客户。 这样,它将允许API在Google API中请求资源,并且如果令牌过期,则可以使用refresh_token来请求新的令牌。 客户端,id_token被嵌入到所有请求中,从而允许API识别客户端并通过https://www.googleapis.com/oauth2/v3/certs的Google证书验证其身份验证。
假设这是正确的方式来使用令牌,我怎么能处理id_token过期,因为客户端没有任何刷新令牌?
谢谢!