前后端分离之后,怎么在用户打开页面的时候就获取登录信息?

2023-07-03 285 0

前提是已登录

前后端分离,当用户打开界面的时候,浏览器请求服务端的 nginx 获取 html+js+css 这些静态文件绘制界面

但是这些 html+js+css 可能是 vue 或者 react 编译出来的,本身不包含 user 信息

我想到的办法就是,浏览器绘制好了界面之后(或者绘制中),发出 ajax 请求后端 api 接口获取当前用户是谁

然后把 user 信息一起绘制到界面上


但是我看了 segmentfault、juejin 等等网站的实现

好像加载的首个资源就包含了用户信息了

图片.png

也就是说,加载第一个资源的时候,就一条龙的知道了 user 信息了,不需要二次请求后端接口了

这是怎么实现的?服务端渲染吗?

你要想在服务端返回 HTML 的那一刻就知晓用户信息,那只能是 SSR。

浏览器请求这个页面的时候是有cookie的,服务端根据cookie拿到用户信息,直接塞到 HTML 中,再返回出来

segmentfault 后端来回答一下,可以直接的告诉你,这个信息是服务端渲染的,然后再异步加载一些消息之类的信息,因为对于消息来说稍微延迟一点问题不大,但是对于当前用户来说,必须要首次渲染就展现是否正常登录。如果需要我也可以给你艾特我们前端给你做个解答。@robin

直接上项目吧可以参考一下:https://github.com/LOGEDI/authentication-project-front-and-end-

用服务端渲染(SSR)的技术实现的,社区用了 Next.js ,其原理是利用 nodejs 运行 react 生成静态 html,解决首屏加载以及 SEO 的问题,通用 vue 也有类似的解决方案 Nuxt

回答

相关文章

nuxt2部署静态化和ssr的时候访问首页先报404再出现首页为什么?
`clip-path` 如何绘制圆角平行四边形呢?
多线程wait方法报错?
VUE 绑定的方法如何直接使用外部函数?
vue2固定定位该怎么做?
谁有redis实现信号量的代码,希望借鉴一下?