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

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

由于我们无法通过javascript访问此类cookie以了解其是否存在,因此如何在react app中处理它?

我最初的想法是通过sessionStorage成功登录时设置一些跟踪项来跟踪此问题,如果收到与身份验证有关的错误,请将其删除。

但是,我相信这与next.js服务器端渲染不太兼容吗?我们使用apollo客户端对其进行了设置,该客户端允许设置自定义标头和缓存。

是否有一种通用的方法可以通过上述设置来处理此身份验证过程?

宝儿伽罗2020/03/24 17:33:26

httpOnly 只是意味着该值不能被JavaScript读取。

因此,您向服务器发出HTTP请求,它将返回带有Set-Cookie标头的响应。

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

(只需确保设置了withCredentials或同等功能。)