Session

2018-05-23  本文已影响0人  海山城

上一篇Cookie的文章说明了Cookie的缺点。那么Session是如何避免这种缺点的呢?主要是通过随机数来保证的。

Session的实现过程

let sessions = {}
let sessionId = Math.random() * 1000000
sessions[sessionId] = {sign_in_email: email}
response.setHeader('Set-Cookie', `sessionId=${sessionId};`)
let cookies = ''
if(request.headers.cookie){
  cookies =  request.headers.cookie.split('; ') // 可能会有多条cookie,以分号分割
}
//将每一条cookie以key: value的形式存入hash
let hash = {}
for(let i =0;i<cookies.length; i++){
  let parts = cookies[i].split('=')
  let key = parts[0]
  let value = parts[1]
  hash[key] = value 
}
let mySession = sessions[hash.sessionId]//hash.sessionId即为对应的SessionID,根据SessionID得到对应的session
let email 
if(mySession){
  email = mySession.sign_in_email
}

补充

Session基本上是基于Cookie实现的,但是也可以用 LocalStorage + 查询参数实现

上一篇 下一篇

猜你喜欢

热点阅读