解决express-session在小程序上拿不到值

长话短说,为什么拿不到session的值,原因如下:
重点在于cookie这个点,因为小程序的请求并没要为我们自动保存cookie,导致服务端的session验证不了请求的来源,每次都会新注册一个session
那怎么解决?
很简单,既然小程序没有这个机制,我们手动给它补上,OK,看下代码

// 拿到服务sessionId
const sessionId = getSessionId()

// 为请求头上的cookie添加sessionId
const header = {
   'cookie': sessionId
}

const RequestTasks = wx.request({...,header,...})
// 拿到响应头的sessionId
RequestTasks.onHeadersReceived(res=>{
   const sessionId = res.header["Set-Cookie"]
   setSessionId(sessionId)
})

const getSessionId = () => {
  const sessionId = wx.getStorageSync('serveSessionId') || ''
  return sessionId
}

const setSessionId = sessionId => {
  wx.setStorageSync('serveSessionId', sessionId)
}

以上就是解决session不同步的问题,是不是很简单

你可能感兴趣的:(解决express-session在小程序上拿不到值)