jwt判断token是否过期_使用NodeJS实现JWT原理

作者:mariozheng 来源:前端开发社区

jwt判断token是否过期_使用NodeJS实现JWT原理_第1张图片

JWT是json web token的简称,本文介绍它的原理,最后后端用nodejs自己实现如何为客户端生成令牌token和校验token

一 .为什么需要会话管理

我们用 nodejs 为前端或者其他服务提供 resful 接口时,http 协议他是一个无状态的协议,有时候我们需要根据这个请求的上下获取具体的用户是否有权限,针对用户的上下文进行操作。所以出现了cookies session还有jwt这几种技术的出现, 都是对HTTP协议的一个补充。使得我们可以用HTTP协议+状态管理构建一个的面向用户的WEB应用。

二 .Session 和 cookie

session 和 cookies 是有联系的,session 就是服务端在客户端 cookies 种下的session_id, 服务端保存session_id所对应的当前用户所有的状态信息。每次客户端请求服务端都带上cookies中的session_id, 服务端判断是否有具体的用户信息,如果没有就去调整登录。

cookies安全性不好,攻击者可以通过获取本地cookies进行欺骗或者利用cookies进行CSRF攻击。

cookies在多个域名下,会存在跨域问题

session的信息是保存在服务端上面的,当我们node.js在stke部署多台机器的时候,需要解决共享session,所以引出来session持久化问题,所以session不支持分布式架构,无法支持横向扩展,只能通过数据库来保存会话数据实现共享。如果持久层失败会出现认证失败。

三 .JWT的定义

jwt是json web token的全称,他解决了session以上的问题,优点是服务器不保存任何会话数据,即服务器变为无状态,使其更容易扩展,什么情况下使用jwt比较合适,我觉得就是授权这个场景,因为jwt使用起来轻便,开销小,后端无状态,所以使用比较广泛。

四 .JWT的原理

JWT 的原理是,服务器认证以后,生成一个 JSON 对象,发回给用户,就像下面这样。

{      "姓名": "张三",      "角色": "管理员"

你可能感兴趣的:(jwt判断token是否过期,jwt如何防止token被窃取,node.js,request,get,请求怎么拿到返回的数据,node.js,字符串替换,nodejs,session使用)