red*_* 87 8 javascript node.js server-side-rendering
我最近推出了一个使用服务器端渲染(使用 next.js)的网站。该站点具有登录功能,如果存在来自用户请求的身份验证 cookie,那么它将在服务器上为该用户呈现登录视图,并将呈现的登录视图返回给用户浏览器。如果用户没有身份验证 cookie,那么它会在服务器上呈现一个已注销的视图并将其返回给用户浏览器。
目前它工作得很好,但我在尝试通过 CDN 为网站提供服务时遇到了障碍。我的问题是 CDN 将缓存服务器响应以加快速度,因此第一个访问 CDN 上的网站的用户将缓存其登录视图并返回到浏览器。这反过来意味着,因为它被缓存,所以访问该站点的其他用户也会看到其他用户登录的视图,而不是他们自己的,因为这是 CDN 缓存的内容。不理想。
我正在努力思考解决这个问题的最佳方法是什么。想听听有关解决此问题的最佳实践方法的任何建议吗?
我想到的一种方法是可能总是在第一次访问页面时返回注销的视图请求,因此在客户端进行身份验证/登录,从那时起始终在服务器上进行身份验证。但是,如果 next.js 仅在第一个请求上进行服务器端渲染,并且让后续请求在客户端上进行所有渲染,则此方法仅适用,我不确定是否是这种情况。
谢谢,并会喜欢我能得到的所有帮助/建议!
更新
从到目前为止我从答案中收集到的信息看来,解决这个问题的最佳方法是在每个用户第一次访问该站点时为他们提供一个 CDN 缓存的注销视图。如果他们的 cookie 中存在身份验证令牌,我可以从前端手动登录他们。他们登陆的第一页之后的所有页面都必须返回登录的视图 - Next.js 是否可能?这是一个很好的方法吗?以下是这些步骤的摘要:
Ank*_*van -1
我从您的问题中了解到,当用户登录时,登录视图会缓存在 CDN 上,当用户注销时,站点也会显示在 CDN 缓存的登录视图中。
对于这个问题有一些解决方案如下:
| 归档时间: |
|
| 查看次数: |
768 次 |
| 最近记录: |