13.Egg.js教程-Session的相关操作

Cookie和Session非常类似,Egg中的Session就存储在Cookie中,但是Session比Cookie的安全性更高。所以在开发中经常使用Cookie来保存是否登录,而用Session来保存登录信息和用户信息。本文就学习一下Session的使用。

Session的添加

在开发中你可以理解为不重要的,公开的信息都可以临时存在Cookie里,但是隐私重要的信息,可以存在Session里,并且只允许在服务端进行操作。

先来看一下如何添加一个Session。打开/app/controller/mybj.js文件,在add()方法里编写。

ctx.session.username='mybj'

这时,我们到控制台看一下是否存储session。
这时,我们到控制台看一下是否存储session

Session的获取

添加完成后,我们在index()方法里获取一下session并展示在页面上。

async index() {
  const { ctx } = this;

  //获取Session
  const username= ctx.session.username

  await ctx.render(
    'mybj.html',{
      id:2021,
      name:'小红',
      age: 18,
      //赋值给模板
      username,
      skills:[
        '泰式按摩',
        '精油搓背',
        '水疗SPA'
      ]
    })
}

在Session存在的情况下,我们已获得了Session的值,并且把获得的值发送给了模板。再到模板中修改模板,把值显示出来app/view/mybj.html

<h3><%=username%></h3>

这时,我们到浏览器中输入http://127.0.0.1:7001/my,然后点击增加Cookie按钮,刷新页面后,可以在页面中看到出现mybj,说明已经添加Session并读取Session成功了。

添加Session并读取Session成功

这时候打开浏览器的控制台的Application标签,可以看到多了一个EGG_SESS的Cookie,这个就是我们刚才存储的Session了。

Session是直接可以支持中文的

比如现在我们要把Session中username的值换成中问的码云笔记,代码如下:

ctx.session.username='码云笔记前端博客'

删除所有Cookie,然后再次点击增加Cookie按钮,然后再次刷新按钮,页面显示出了码云笔记前端博客字样,说明中文的Session值也是完全可以使用的。

Session的删除

删除Session非常简单,只需要把值设置为null就可以了。在del()方法中编写下面的代码。

ctx.session.username=null

这样就可以删除session了。这时候到浏览器中,可以先点击增加Cookie按钮,再点击删除Cookie按钮,可以看到Session也被删除掉了,页面中的值就消失掉了。

Session的相关项配置

配置Session的一些选项,需要到config.default.js文件中进行配置。

config.session = {
    key :"PANG_SESS",   // 设置Key的默认值
    httpOnly:true,      // 设置服务端操作
    maxAge:1000*60  ,   // 设置最大有效时间
    renew: true,        // 页面有访问动作自动刷新session 
}

总结

本文我们主要学习了Egg中Session的增删改查和配置相关的操作。

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:
1. 本站所有文章教程及资源素材均来源于网络与用户分享或为本站原创,仅限用于学习和研究。
2. 如果内容损害你的权益请联系客服QQ:1642748312给予处理。
码云笔记 » 13.Egg.js教程-Session的相关操作

发表评论

IT互联网行业相关广告投放 更专业 更精准

立即查看 联系我们