当前位置:首页 > 实用技巧 >

cookie怎么验证用户身份(cookie登录怎么操作)

来源:原点资讯(www.yd166.com)时间:2023-10-26 23:19:58作者:YD166手机阅读>>

从上图可以看出,登录成功后,服务器返回的HTTP响应报文中会包含Set-Cookie响应头。之后我们打开Chrome开发者工具的Application Tab页面,可以看到已经设置好的Cookie信息:

cookie怎么验证用户身份,cookie登录怎么操作(5)

对于大部分的Web应用,一般都会提供一个用户信息页面,让用户可以查看当前已经登录成功的用户信息。这里我们也注册了一个/getUserInfo路由,用于显示已登录的用户信息:

// router.js 路由器。get ( "/getUserInfo" , async ( ctx ) => { if ( ctx.session.user ) { const { userName, userId } = ctx.session.user ; ctx.body = ` < div > UserName : ${userName} , UserId: ${userId} </div> ` ; } else { ctx.body = { code : 0 , message : “您还没有登录。” }; } });

用户登录成功后,访问web应用中的其他路由时,会发起相应的HTTP请求,请求头中会自动携带当前用户的Cookie信息,如下图:

cookie怎么验证用户身份,cookie登录怎么操作(6)

除了上述功能,我们还需要注册一个路由来处理用户注销操作:

// router.js 路由器。get ( "/logout" , async ( ctx ) => { ctx.session = null ; ctx.body = ` < h1 >成功注销</h1> <a href="./login">登录</a> ` ; });

同样我们看一下注销成功后服务器返回的HTTP响应报文:

cookie怎么验证用户身份,cookie登录怎么操作(7)

已经描述了包含在 Web 应用程序中的路由。为了应用能够正常运行,我们还需要创建一个Koa应用,并配置koa-session、koa-bodyparser等中间件。具体代码如下:

// app.js const Koa = require ( "koa" ); const app = new Koa (); const session = require ( "koa-session" ); const bodyParser = require ( "koa-bodyparser" ); 常量端口 = 3000 ; const router = require ( "./router.js" ); const CONFIG = { key : "sid" , maxAge : 86400000 , httpOnly: true , signed : true , rolling : false , renew : false , sameSite : null , }; 应用程序。键= [ “bytefer” ]; 应用程序。use ( async function ( ctx, next ) { try { await next ( ); } catch (err) { ctx.status = err.status || 500 ; ctx.type = "html" ; CTX。body = "<p>系统错误</p>" ; CTX。应用程序。发出(“错误”,错误,ctx); } }); 应用程序。使用(会话(配置,应用程序)); 应用程序。使用( bodyParser ()); 应用程序。使用(路由器。路由())。使用(路由器。allowedMethods()); 应用程序。on ( "error" , ( err, ctx ) => { 控制台. 日志(错误); }); 应用程序。listen (port, function ( ) { console . log ( `服务器运行在 http://localhost: ${port} ` ); });

Cookie-Session的认证过程已经介绍过了,最后总结一下这种认证方式存在的一些问题。

饼*缺陷

  • 每次HTTP请求都会添加Cookies,无形中增加了流量。
  • 安全性差,攻击者可以利用本地 cookie 进行欺骗和 CSRF 攻击。
  • Cookie 大小限制在 4KB 左右,不足以满足复杂的存储要求。

会话缺陷

  • session保存在服务器端,如果短时间内有大量用户,会影响服务器的性能。
  • 可扩展性不好。当有多台服务器时,如何共享Session就会成为一个问题。也就是说当用户第一次访问服务器A,第二次请求转发给服务器B时,服务器B无从知晓其状态。

那么如何解决以上问题呢?解决方案之一是使用基于令牌的身份验证。在下一篇文章中,我将介绍JWT认证方式。有兴趣记得关注我哦。

如果需要更加全面的学好前端,也可以来参与我们的三十天学习计划,全程不涉及任何费用!这是一套免费的三十天挑战计划的课程体系,包含了html css 云端部署的课程体系,可以通过钉钉群里学习,有问题在群里可以提问,同时每节课还安排有作业,配套有阶段项目练习和综合项目实战,目的是帮助大家夯实前端基础,轻松入门到前端行业

cookie怎么验证用户身份,cookie登录怎么操作(8)

栏目热文

登录cookie超时(可以用超时时间设置删除cookie)

登录cookie超时(可以用超时时间设置删除cookie)

带大家详细了解下Cookie相关的知识!一、背景HTTP无状态:服务器无法知道两个请求是否来自同一个浏览器,即服务器不知...

2023-10-26 22:54:03查看全文 >>

cookie安全问题及解决(允许第三方cookie是什么意思)

cookie安全问题及解决(允许第三方cookie是什么意思)

随着互联网技术的飞速发展,业务的开展方式更加灵活,应用系统更加复杂,也因此面临着更多的安全性挑战。安全测试是在应用系统投...

2023-10-26 22:50:06查看全文 >>

cookie验证失败怎么解决(cookie状态异常)

cookie验证失败怎么解决(cookie状态异常)

熬了两天,终于发现了问题所在,确实是服务器时区设置的不对,系统出现的问题就如下面所说的如出一辙:昨天项目迁移了测试服务器...

2023-10-26 23:00:57查看全文 >>

cookie无效怎么解决(安卓获取cookie)

cookie无效怎么解决(安卓获取cookie)

摘要本文作者:崔庆才GitHub地址:https://github.com/Python3WebSpider/Cooki...

2023-10-26 22:54:12查看全文 >>

cookie登录失败(cookie失效了请重新登录怎么解决)

cookie登录失败(cookie失效了请重新登录怎么解决)

介绍如果我们项目使用了 Identity Server4的网站上使用HTTP时,用户将无法登录,因为Chrome在版本8...

2023-10-26 23:12:18查看全文 >>

cookie验证方法(cookie记忆方法)

cookie验证方法(cookie记忆方法)

引言由于 HTTP 协议是无状态的,完成操作关闭浏览器后,客户端和服务端的连接就断开了,所以我们必须要有一种机制来保证客...

2023-10-26 23:23:17查看全文 >>

未选择任何cookie怎么解决

未选择任何cookie怎么解决

最近,谷歌公布了这么一个消息。。制定一个更注重隐私的网站▼公告还挺长的,主要说的是:谷歌将淘汰第三方 Cookie ,且...

2023-10-26 22:49:27查看全文 >>

cookie禁用了怎么解决(如何启用浏览器cookie)

cookie禁用了怎么解决(如何启用浏览器cookie)

阅读此文前,麻烦您点击一下“关注”,既方便您进行讨论与分享,还能为您带来不一样的参与感,感谢您的支持。随着互联网的广泛使...

2023-10-26 23:16:06查看全文 >>

cookie登录失败是什么原因(登录失败用户账户限制可能的原因)

cookie登录失败是什么原因(登录失败用户账户限制可能的原因)

最新有很多小伙伴,在织梦的使用过程中,遇到了不少问题,今天给大家讲解一篇“dedeCms"登录后台(验证码不正确...

2023-10-26 23:22:01查看全文 >>

cookie 错误解决(关于cookie的说法错误的是)

cookie 错误解决(关于cookie的说法错误的是)

同一台服务器,同样的浏览器,其他网站WordPress后台可以正常登陆。但是其中一个网站每次登陆WordPress后台的...

2023-10-26 23:25:03查看全文 >>

文档排行