广告
返回顶部
首页 > 资讯 > 后端开发 > Python >关于JWTtoken的管理问题
  • 657
分享到

关于JWTtoken的管理问题

JWTtoken 2023-01-30 22:01:49 657人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

Jwt简介:      JSON WEB token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于jsON的开放标准。因为网络上有很多关于jwt的详细介绍了,所以我这里就不再赘述。但是JWT的大概还是要简要讲一下的。   

Jwt简介:

     JSON WEB token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于jsON的开放标准。因为网络上有很多关于jwt的详细介绍了,所以我这里就不再赘述。但是JWT的大概还是要简要讲一下的。

  众所周知,在现在的互联网世界中,越来越多的网站之间因为业务关系需要频繁的跨域互相访问,但是由于Http协议的同源策略,在跨域访问中如何携带用户个人信息认证就是一个大问题了。为了安全,cookie是只能在同域名下才能作用,这也使之前一直常用的session和cookie来保持用户状态的机制在这种情况下无能为力。而JWT也由此应运而生,越来越多的应用在了大型网站的单点登录中了。

  简单叙述一下jwt的构成,jwt总共由3个部分构成,分别是header头部,用来存储该token的加密方式和一些简介。payload部分,用来存储用户的非敏感信息和一些因为业务需要所需的数据。而header和payload都是json格式的数据,通过可以互相转化的base64转码成字符串,这也是为什么在token中不要携带用户敏感信息的圆心。最后的部分是signature,它由保存在公司内部的密钥和前面的header还有payload通过header部分里声明的加密方式以及一些加盐操作加密而成。三个部分分别用 . 隔开,最终形成header.payload.signature这个形式。

header:
{
  'typ': 'JWT',
  'alg': 'HS256'
}

base64(header)  --> eyJ0eXaiOiJKV1QiLCJhbGCiOiJIUzI1NiJ9

payload:
{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}

base64(payload)  --> eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9

最终组成 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95ORM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
    

  JWT是在用户注册或者登陆之后通过服务器签发给客户端,大部分客户端通过localstorage来存储token,这样就可以在前端发起请求时主动携带上token,然后服务器接收之后通过验证来判断该用户的认证信息了。也有少部分客户端是将token存储在cookie中的,在此不谈。

  那么今天要谈的问题来了,因为token是存储在客户端的,那么就表示着一旦服务器在签发token之后,除了等待token到时限失效之外失去了管控token的能力。一旦客户端token丢失等情况发生,就会产生用户安全问题。

  解决方案:

  服务器在用户第一次登陆或者注册成功后在签发token时可以给该token配置一个token_id,并保存到服务器的Redis或者Mysql数据库中。用户在访问时如果携带了token便需要先经过token_id的校验,再进行后面用户身份信息的校验。一旦用户发起安全申请,便立即删除服务器保存的token_id,而用户携带的token在token_id这个步骤的校验失败之后便会跳转到登录界面,由服务器重新签发token。

 

--结束END--

本文标题: 关于JWTtoken的管理问题

本文链接: https://www.lsjlt.com/news/179975.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于JWTtoken的管理问题
    JWT简介:      Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。因为网络上有很多关于jwt的详细介绍了,所以我这里就不再赘述。但是JWT的大概还是要简要讲一下的。   ...
    99+
    2023-01-30
    JWTtoken
  • 关于关闭管道的问题DisconnectNamedPipe
    `DisconnectNamedPipe` 是一个Windows API函数,用于关闭命名管道。命名管道是一种实现进程间通信的机制,...
    99+
    2023-08-08
    问题
  • 关于SpringBoot静态资源路径管理问题
    目录一、默认静态资源路径二、增加静态资源路径前缀一、默认静态资源路径 类路径下: staticpublicresources 这几个目录为默认静态资源访问的目录 二、增加静态资源...
    99+
    2022-11-13
  • VB关于FindWindowEx的问题
    FindWindowEx函数用于在指定窗口的子窗口中查找符合指定条件的窗口。它的声明如下:Public Declare Functi...
    99+
    2023-08-08
    VB
  • 关于mysql5.6 的排序问题.
    mysql 5.6 的排序进行了优化.  同样的sql , 在5.5 跟5.6 上可能得到不同的结果: CREATE TABLE `TestCase2` (   ...
    99+
    2022-10-18
  • 关于hashmap的遍历问题
    听我们的支持说遍历hashmap使用entryset快些,因大部分都是用keyset遍历的,也没有去想那么多。今天研究了一下,果然差了很多。见示例,只是简单的hashmap信息。不多说了,大家把这个类在本地运行下,很容易看到结果。impor...
    99+
    2023-06-03
  • 关于Thinkphp6的日志问题
    目录Thinkphp6的日志问题设置日志记录级别单一日志独立日志日志的写入时机日志通道Thinkphp6异常处理与日志异常处理日志手动记录日志关闭日志总结Thinkphp6的日志问题...
    99+
    2023-03-23
    Thinkphp6的日志 Thinkphp6日志 关于Thinkphp6日志
  • 关于WM_CLOSE和OnCancel的问题
    WM_CLOSE是一个Windows消息,用于关闭一个窗口。当用户点击窗口的关闭按钮或者调用CloseWindow函数时,系统会发送...
    99+
    2023-08-08
    WM_CLOSE
  • 关于MeasureString的参数问题
    MeasureString方法是用来测量指定字符串在指定字体和大小下的大小的。它的参数有以下几个:1. text:要测量大小的字符串...
    99+
    2023-08-08
    MeasureString
  • 关于GetDC()和ReleaseDC()的问题
    GetDC()和ReleaseDC()是用来获取和释放设备上下文句柄的函数,可以用于在Windows操作系统中进行绘图操作。GetD...
    99+
    2023-08-08
    GetDC()
  • 关于RealonePlay的使用问题
    RealOnePlayer是一款音乐和视频播放器,用于播放各种媒体文件。以下是一些关于使用RealOnePlayer的常见问题和解答...
    99+
    2023-08-08
    RealonePlay
  • 关于jenkins的double check的问题
    jenkins启动之后会在home目录下生成一个".owner"文件,里面标识了本次jenkins实例的唯一标识,文件格式如下:47707180 contextPath="/jenkins"...
    99+
    2023-01-31
    jenkins double check
  • 关于java.util.Timer的TimerTask的cancel问题
    在Java中,`java.util.Timer`是一个用于安排任务的类。`java.util.TimerTask`是一个抽象类,用于...
    99+
    2023-08-18
    Java
  • 在面试中如何回答关于 Go 和缓存管理的问题?
    Go 语言是一种快速、简单、安全的开发语言,而缓存管理是任何大规模应用程序的核心。当你参加面试时,面试官可能会问你关于 Go 和缓存管理的问题。在本文中,我们将讨论一些常见的问题,以及如何回答它们。 Go 语言中有哪些缓存库? 在 G...
    99+
    2023-06-13
    面试 缓存 linux
  • 关于IDEA关联数据库的问题
    IDEA关联数据库 首先打开一个IDEA工程,在右边可以看到Database一个按钮,点击。 如上这个界面,点击加号 选择Data Source,选择数据库类型,我这里使用的是M...
    99+
    2022-11-11
  • 关于SpringCloudStream配置问题
    目录SpringCloudStream配置Stream配置Kafka绑定器配置总结SpringCloudStream配置 以下配置摘自《SpringCloud微服务实战》,配置主要包...
    99+
    2022-12-28
    SpringCloudStream配置 SpringCloudStream
  • 关于golangtest缓存问题
    在使用vscode进行debug golang 时,出现test结果缓存的情况导致若干次test结果一致问题设置go test不用缓存官方说明https://pkg.go.dev/c...
    99+
    2022-11-11
  • 关于Dubbo初始问题
    目录Dubbo架构节点角色说明过程Zookeeper安装Dubbo快速入门jar包依赖开始配置dubbo配置zk总结Dubbo架构 消费者:调用提供者,但是不能直接调,需要借助注...
    99+
    2023-03-01
    Dubbo初始 关于Dubbo初始 Dubbo初始问题
  • 关于JSP中文问题
    在jsp中,中文乱码常会让人心乱如麻。 对于 中文处理的常见对策,在网上经常可见的主要是下面2种: 或者: 虚拟小龙亭也主要采用了上面2种方法进行了修改,从而变成了1.1版。 通过简单总结,示例中的中文处理发生于以下几个地方: 1 在u...
    99+
    2023-06-03
  • 关于Grep的多次管道过滤的问题及解决
    目录Grep的多次管道过滤问题如何解决line-buffered 是什么总结Grep的多次管道过滤问题 在日常的开发过程中,我们利用grep可以方便快捷的查找感兴趣的日志内容,极大地提升了开发和排错效率。但是有时候,我们...
    99+
    2023-03-07
    Grep多次管道过滤 Grep管道过滤 Grep管道
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作