如何使用 apollo 客户端在 next.js 中处理 httpOnly cookie 身份验证

Ilj*_*lja 10 javascript apollo reactjs graphql next.js

在我通常的经验中,我使用的所有单页应用程序都使用 JWT 作为身份验证机制。我遇到了为此使用 httpOnly cookie 的 api。

由于我们无法通过 javascript 访问此类 cookie 以了解它是否存在,那么如何在 react 应用程序中处理此问题?

我最初的想法是通过sessionStorage在成功登录时设置一些并在收到与身份验证相关的错误时将其删除来跟踪这一点。

但是我相信这不适用于 next.js 服务器端渲染?我们用 apollo 客户端设置了它,它允许设置自定义标头和缓存。

有没有一种通用的方法可以通过上面的设置来处理这个身份验证过程?

Que*_*tin 5

httpOnly 只是意味着该值无法被 JavaScript 读取。

所以你向服务器发出一个 HTTP 请求,它会返回一个带有 Set-Cookie 标头的响应。

然后任何未来的请求将自动包含 cookie。

(只需确保您设置了withCredentials或等效项。)