当前位置: 首页 > news >正文

共青团智慧团建登录网站搜索关键词排名推广

共青团智慧团建登录网站,搜索关键词排名推广,wordpress主题innmx,杭州seo托管公司推荐Cookie HTTP请求是无状态的,但是在开发时,有些情况是需要知道请求的人是谁的。为了解决这个问题,HTTP协议设计了一个特殊的请求头:Cookie。服务端可以通过响应头(set-cookie)将少量数据响应给客户端&#…

Cookie

HTTP请求是无状态的,但是在开发时,有些情况是需要知道请求的人是谁的。为了解决这个问题,HTTP协议设计了一个特殊的请求头:Cookie。服务端可以通过响应头(set-cookie)将少量数据响应给客户端,浏览器会遵循协议将数据保留,并在下一次请求同一个服务的时候带上。

// html中插入DOM和JS方法
<div><button onclick="add()">增加Cookie</button><button onclick="del()">删除Cookie</button><button onclick="editor()">修改Cookie</button><button onclick="show()">查看Cookie</button>
</div>
<script>function add(){fetch("/add",{method:"post",headers:{"Content-type":"application/json"}});}function del(){fetch("/del",{method:"post",headers:{"Content-type":"application/json"}});}function editor(){fetch("/editor",{method:"post",headers:{"Content-type":"application/json"}});}function show(){fetch("/show",{method:"post",headers:{"Content-type":"application/json"}});}
</script>
async add() {const ctx = this.ctxctx.cookies.set("user", "jspang.com")ctx.body = {status:200,data:'Cookie添加成功'}
}
async del() {const ctx = this.ctxctx.cookies.set("user", null)ctx.body = {status:200,data:'Cookie删除成功'}
}
async editor() {const ctx = this.ctxctx.cookies.set("user",'bilibili')ctx.body = {status:200,data:'Cookie修改成功'}
}
async show() {const ctx = this.ctxconst user=ctx.cookies.get("user")console.log(user)ctx.body = {status:200,data:'Cookie显示成功'}
}// 配置路由
router.post('/add', controller.zhuba.add);
router.post('/del', controller.zhuba.del);
router.post('/editor', controller.zhuba.editor);
router.post('/show', controller.zhuba.show);

image.png

image.png

配置和加密

一些配置选项,比如有效时间、服务端操作设置和中文编写加密这些操作。
ctx.cookies.set( ) 方法是有三个参数的,第一个参数是key,第二个参数是value,第三个参数就可以进行配置。比如你需要配置Cookie的有效时间,可以使用maxAge属性。(这个时间是毫秒。)

maxAge 时效设置

maxAge: 1000 * 2 (毫秒)

async add(){const ctx = this.ctxctx.cookies.set("user","jspang.com",{maxAge:1000*2})ctx.body = {status:200,data:'Cookie添加成功'}
}
HhttpOnly 是否只允许服务端来操作Cookie

伪造Cookie来绕过登录是黑客经常使用的一种手段,所以为了安全,Egg.js默认设置只允许服务端来操作Cookie。
比如通过JS的方式document.cookie获取Cookie是不能获取的(需要在浏览器的控制台输入获取)。当我们想通过客户端操作Cookie时,可以通过下面的代码进行设置。

async add(){const ctx = this.ctxctx.cookies.set("user","jspang.com",{maxAge:1000*60,httpOnly:false})ctx.body = {status:200,data:'Cookie添加成功'}
}
encrypt 设置中文Cookie (set加密 show解密)

加密只要在第三个参数中,加入encrypt:true,就可以加密成功。

ctx.cookies.set("user","zhuba",{encrypt:true
})

直接通过ctx.cookies.get( )方法获取,获取的是undefind,也就是无法获取的。这时候需要再次配置解密才可以使用, 在show( )方法里配置代码如下。

const user=ctx.cookies.get("user",{encrypt:true
})

Session

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

添加、获取、删除

  • 添加:在add()方法中 ctx.session.username = ‘zhuba’
  • 获取:直接获取 const username = ctx.session.username
  • 删除:把值赋为空即可 ctx.session.username = null

session是支持中文的,不需要加密解密

配置项

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

中间件的编写

Egg是对Koa的二次封装,所以中间件这部分和Koa框架是一样的,也追寻洋葱圈模型。

Egg.js约定中间件要写在/app/middleware文件夹下

module.exports = options => {return async (ctx, next) => {if (ctx.session.counter) { // 没学数据库先使用sessionctx.session.counter++;} else {ctx.session.counter = 1;}await next();}
};

手动挂载:config/config.default.js config.middleware = [‘counter’];

在index()中使用, 可以发现中间件现在的作用域是全局的。

image.png

要想只在某一页面使用需要在router(路由)中配置中间件的使用,并去除全局挂载。

const counter = app.middleware.counter()const {router,controller,} = app;router.get('/', counter, controller.home.index);

在实际开发中中间件还是有很多用处的,比如日志的记录、比如所有页面的Gzip压缩展示、比如全局埋点的使用

http://www.hrbkazy.com/news/45244.html

相关文章:

  • wordpress修改端口大连百度网站排名优化
  • 做图网站大学生兼职爱站
  • 中企动力做的网站后台如何登陆网站外包一般多少钱啊
  • 常州网站建设价格山东做网站公司
  • 响应式企业网站模板合肥网站推广公司哪家好
  • 苏州工业园区一站式服务中心淘宝引流推广怎么做
  • 网站解析怎么做5g站长工具查询
  • 商品展示型网站有哪些企业内训机构
  • 大名专业做网站企业培训内容有哪些
  • 网站营销推广策划书营销策划方案案例范文
  • 企业手机网站建设信息今日国际军事新闻头条
  • 国际物流公司网站百度关键词网站排名优化软件
  • 海口网站建设方案咨询苏州市网站
  • 网站开发技术试验教程怎么做起泡胶
  • 网站测试域名301怎么做sem代运营公司
  • 广州网站排名优化报价可以免费打开网站的软件下载
  • wordpress saharanseo研究中心官网
  • 北京知名网站建设公司排名金华网站建设
  • 微信做商城网站温州seo
  • net网络网站建设企业培训内容
  • 虚拟主机网站建设做百度推广一个月多少钱
  • 北京 企业建网站百度推广登录入口
  • seo优化方案书济南seo全网营销
  • php做网站还是linux百度推广400客服电话
  • 网站建设教程主页百度广告怎么做
  • 一级a做爰片官方网站重庆seo推广服务
  • 网站标题写什么作用百度指数查询
  • 成都广告公司地址电话百度seo软件优化
  • 做调研的网站一般有哪些竞价推广网络推广运营
  • 关于网站建设的介绍小说推广接单平台