项目中遇到的问题

官网:技术栈:node+express+ejs
对node服务端渲染的理解

服务端渲染意味着浏览器发出的请求都是通过后端完成数据和页面的整合,然后将完整的html返给浏览器,有利于seo。

项目中是以node作为中间层,将从java后端请求到的数据,在node层做好服务端渲染后,给到浏览器。

其实也就是浏览器请求的url,到达node的路由层,路由层触发node请求转发到java端获取到数据,在node端将数据注入到ejs的模板,然后将完整的html返回给浏览器。

用户登录后的token如何存放?

注册,登录不需要在请求成功后渲染页面,所以不需要通过node做转发请求,直接使用ajax请求java后台即可完成。

问题:

但用户登录后的token需要在之后的每一次的接口请求中都有,就出现了token如何存放?一开始将token存储在localstorage中,但发现其余需要node转发的请求,在node端无法获取到存储在window对象中的localstorage。

解决方案:

1.将登录也做node请求转发,就可以将token的信息存储在node内存中,其余需要node转发的请求,在node端就可以拿到存储的token,但需要注意存储在node端,意味着每一个登录用户的token都得是有唯一标识的,不然会被覆盖,所以可以将token存储在node 的session中

2.将token直接存储在浏览器端的cookie中,每次请求header中会自动将cookie信息带上,在node转发请求时可以直接在router的mreq中获取到

posted @ 2019-06-11 14:02  但沉默。  阅读(324)  评论(0编辑  收藏  举报