将 Google OAuth 的刷新令牌存储在仅 http cookie 中是否安全?

Is it safe to store Google OAuth's refresh token in an http only cookie?

为了保护我的路由,我正在使用 Google OAuth 来允许我的用户登录并为我的后端标识自己。

发布的 id token 然后在每次请求时发送到我后端的受保护端点,并通过本文中解释的内容进行验证:https://developers.google.com/identity/sign-in/web/backend-auth

现在唯一的问题是,id 令牌会在设定的时间后过期。 检索新 id 令牌的唯一方法是使用我相信的刷新令牌。 如果是这样,我如何才能安全地将刷新令牌存储在客户端上,以便我可以检索新的 ID 令牌?

编辑:澄清一下,我使用的是授权码流程

如果客户端是单页应用程序,那么您可以将刷新令牌存储在仅限 http 的 cookie 中。当然,假设您有一些后端可以接收该 cookie、提取令牌并向 Google 发出刷新请求。如果可能,您可以将刷新令牌存储在后端。

如果您的应用程序没有专门的后端,但仍想将令牌保留在仅限 http 的 cookie 中,您可以查看我们在 Curity 创建的 Token Handler 组件帮助解决这类问题。