小白
express官方“auth”这个登陆验证的例子中,会话期间登陆一次就行了。
但是关闭浏览器后,sessionID也会跟着消失,要怎么给这个sessionID设置过期时间呢?
以便下次打开浏览器,浏览时,不用再次登录。
主要是这个sessionID是自动生成的。(默认名是connect.sid)
(好像是,如果sessionID不存在的话,就自动生成一个,然后才能访问相对应的res.session.*)
在sessionID生成后,可以用req.cookies.sessionID获取,
但是设置就不行了:
res.cookie('sessionID', req.cookies.sessionID, { maxAge: 60000 });//无效
服务器的session默认是放到内存来缓存的。重启服务,会导致 session 消失。
一般生产环境是 缓存进数据库的.
sessionID 是 服务器在 前端 设置 一个携带令牌的
cookie
,然后设置 该 cookie 的max-age,来控制sessionID的时效的。cookie过期,前端再次访问服务器就没有 令牌,也就是登录过期了。访问接口后,你需要给session 设置 用户信息字段。一般都是 session.user = {字段信息}
最后建议你上 npm 搜索 session, 读一读人家的文档。上面介绍很详细了