JWT初识记录】的更多相关文章

因为前一段时间做了一个系统持续操作期间自动刷新token有效性的需求,然后就想着找一个空闲时间总结一下JWT,所以今天就简单的记录一下自己了解的内容. JWT是什么 JWT全称是JSON Web Token,是一个开放标准,它定义了一种紧凑的.自包含的结构,可用于在服务之间信息传递和授权认证. 信息传递:通过签名,可以确保传递的信息不被篡改且不是伪造的. 授权认证:通过JWT生成的token信息进行验签,确保是自己服务签发的token信息. JWT的格式: JWT由三部分组成,各部分之间使用[.…
从百度里搜索里搜索了很多jwt的文章,跟着文章写了一个demo,这里记录下学习过程中碰上的问题.看文章多遍,不如手工实现一次. 模板已上传到github.com:dogvane/webapi_jwt_template 让项目先飞起来 网上的都只是文章和代码片段,github里找的,要么跑不起来(需要配置的其它依赖,数据库等),要么代码结构巨复杂,不知从何改起. 对于demo来说,就只需要2个功能 1.生成jwt的token并返回给前端(AccountController.Login) 2.执行一…
需求分析 1.  注册用JWT做状态保持    1.1 安装jwt    pip install djangorestframework-jwt        1.2 去settings里面配置jwt配置项            REST_FRAMEWORK = {        'DEFAULT_AUTHENTICATION_CLASSES': (                'rest_framework_jwt.authentication.JSONWebTokenAuthenticat…
一直没有好好看过jwt,直到前两天要做web验证,朋友给我推荐了jwt.才发现jwt已经被大家广泛的应用了.看来我有点out了.哈哈,趁着这个世界来好好看看这个. JWT(JSON Web Token), 顾名思义就是可以在Web上传输的token,这种token是用JSON格式进行format的.它是一个开源标准(RFC 7519),定义了一个紧凑的自包含的方式在不同实体之间安全的用JSON格式传输信息. 由于现在很多项目都是前后端分离,restful api模式.所以传统的session模式…
JWT适用场景 https://www.jianshu.com/p/af8360b83a9f 适用于一次性操作的认证,颁布一个很短过期时间的JWT给浏览器. 无状态的JWT无法实现精确的在线人数统计. 建议使用https协议,因开销问题取决于公司. 利用cookie存储token需要注意 1.cookie有大小限制(通常为4k): 2.和浏览器有cookie数量限制(例如Firefox每个域名cookie限制为50个): 3.若用localstorage存储token,需防止xss攻击: 刷新j…
1.limit用来限制select语句返回指定的记录数,可以接受一个或者两个数字参数.如果参数为一个,是返回的数据条数:如果给定参数为两个,第一个参数为指定第一个返回记录行的偏移量(初识记录行的偏移量为0),第二个参数为指定返回记录行的最大数目. ; 个记录行 ,; 2.聚合: select name,age from user group by age; 3.聚合后条件: ; having和where的区别:having是聚合后条件,where是聚合前条件 4.char VS varchar?…
四.redis数据类型 redis可以理解成一个全局的大字典,key就是数据的唯一标识符.根据key对应的值不同,可以划分成5个基本数据类型. 1. string类型: 字符串类型,是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,也就是byte类型. 单个数据的最大容量是512M. key: 值 2. hash类型: 哈希类型,用于存储对象/字典,对象/字典的结构为键值对.key.域.值的类型都为string.域在同一个hash中是唯一的. key:{ 域(属性):…
以前在学校做项目的时候,登录注销,权限验证这些事情,都是交给框架来做的,每次都是把这个架子拿到项目中去,也没有真正思考过它的过程,总觉的这些都是十分简单的逻辑. 然而来公司工作之后,慢慢觉得登录和权限虽然固定,但确实不容出错的.并且,在一个大型的公司或是多系统中,登录和权限都是抽离开来的,它们有复杂的逻辑以及高安全性,并且使得多个系统可以有一个统一登录和认证的接口.这就是今天想描述的单点登录SSO. 1. 关于SSO: SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一…
初识 工作中有些地方用到了netty,netty是一个NIO框架,对于NIO却不是那么熟悉,这个系列的文章是我在学习NIO时的一个记录,也期待自己可以更好的掌握NIO. 一.NIO是什么? 非阻塞式IO,与传统的BIO(阻塞式IO)不同,NIO可以通过通道(Channels)来监听各通道的动作,一个线程就可以完成对多个通道的动作监听,这些动作包括连接就绪.写就绪.读就绪等,举个例子,建立连接这个动作在BIO中会发生阻塞,直到连接建立完成,而在NIO中,建连只是单线程里Selector监听的一个动…
主题 接上文Spring 学习记录7 初识XmlWebApplicationContext refresh方法 refresh方法是定义在父类AbstractApplicationContext中的.它内部会调用很多方法.有一些是在子类中实现的.算是模板方法的设计模式吧.主要作用就是初始化wac加载各种bean等作用. @Override public void refresh() throws BeansException, IllegalStateException { synchroniz…
单点登录 多系统,单一位置登录,实现多系统同时登录的一种技术 (三方登录:某系统使用其他系统的用户,实现本系统登录的方式.如微信登录.支付宝登录) 单点登录一般是用于互相授信的系统,实现单一位置登录,全系统有效 一.Session跨域 所谓 Session 跨域就是摒弃了系统提供的 Session ,而使用自定义的类似 Session 的机制来保存客户端数据的一种解决方案. 如:通过设置 cookie 的 domain 来实现 cookie 的跨域传递.在 cookie 中传递一个自定义的 se…
一.流程控制之--while 循环 循环就是重复做同一件事,它可以终止当前循环,也可以跳出这一次循环,继续下一次循环. 基本结构(基本循环) while 条件: 循环体 示例 # 这是一个模拟音乐循环播放的代码 while True: print('画') print('桥头姑娘') print('四块五的妞') 终止循环 改变条件(根据上面的流程,改变条件,就会终止循环) 可以用关键字:break,来终止循环. 调用系统命令:quit().exit() 后面会讲到,不建议大家使用. 关键字:c…
Maven知识记录(一)初识Maven私服 什么是maven私服 私服即私有的仓库.maven把存放文件的地方叫做仓库,我们可以理解成我门家中的储物间.而maven把存放文件的具体位置叫做坐标.我们项目中pom.xml文件里引入的jar文件就存放在了maven仓库中. maven的仓库分两种: 本地仓库 我们个人电脑中安装maven时分配的仓库.用于存放我们所有项目中所需的资源文件(多为jar文件).需要说明的是初次安装maven时我们的本地仓库是没有任何文件的,只有我们在对应的项目里运行mav…
1.JWT是什么 官方网站 JWT是JSON Web Token的简称.是一种开放标准(RFC 7519),定义了一种紧凑且自包含的方式,以JSON对象的形式在各方之间安全地传输信息,因为他被数字签名也就是加密过,因此可以被用来验证和信任.JWT使用RSA或者ECDSA的公钥/私钥进行签名认证. 2.它能做什么 认证:这是使用JWT最常见的场景.用户登录后,每个后续请求将包括JWT,允许用户访问该令牌允许的路由.服务和资源.单点登录是目前JWT广泛使用的一个特性,因为它的开销小,并且可以跨不同的…
工作需要用到ffmpeg来进行Android的软编码,对这玩意儿一点都不了解,做个学习记录先. FFmpeg:http://www.ffmpeg.org Fmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created.…
ELK是elastic公司提供的一套完整的收集日志并分析展示的产品,分别表示Elasticsearch.Logstash和kibana. (官网截个图) 先来一段个人粗浅的认识: Elasticsearch简称ES,是一个建立在全文搜索引擎Apache Lucene基础上的实时的分布式搜索及分析引擎. Logstash是一个具有实时传输能力的数据收集引擎,由三个组件构成,其中input组件负责收集数据,常用的数据源包括文件类型.数据库类型:filter组件是用来用来过滤数据:output组件是L…
一.本文介绍 上篇文章讲到Spring Boot整合Swagger的时候其实我就在思考关于接口安全的问题了,在这篇文章了我整合了JWT用来保证接口的安全性.我会先简单介绍一下JWT然后在上篇文章的基础上整合JWT. 二.JWT简介(参考链接) JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的.自包含的方式,用于作为JSON对象在各方之间安全地传输信息.该信息可以被验证和信任,因为它是数字签名的.我理解的JWT主要的两点作用:1.用来校验权限角色等:2…
前置知识准备: 如果还不知道服务器是干什么的,只是刚踏入程序员之路的,大家还是先学习基础,虽然以下文档很简单,但至少知道为什么要学: 一般服务器环境现在基本上都是放在Linux系统上了,如果对Linux还不熟的,可以先学习Linux入门就行了: 如果只是想单纯用Windows下联系的,其实本质和Linux环境是一样的,可以参考完成,这样可以减少Linux的学习了:  前言 Nginx 是当前很火很火的服务器,如果不了解,但至少也听说过,如果没有听说过,那赶紧开始动起来吧,教程很多很多,如下: 1…
目录 前言 vtkRenderer 引入vtk窗口 小结 前言 一场疫情打乱了好多人的节奏,我也一样,一不留神半年都快过去了,这期间虽说一直在鼓捣东西吧,不过确实是没啥实质性的进展,索性就继续把vtk的使用来完善下吧. vtkRenderer vtk的基类,也就是所有类基本继承于vtkObjectBase,Renderer也是一样,看下图,其实看源码挺好的,可以学习学习别人的思想,借鉴下充实自己. vtkRenderer个人理解就是个窗口渲染器,也是vtk的核心,没了这玩意儿你没法去操作你的vt…
一.前言 对内置日志系统的整体实现进行了介绍之后,可以通过使用内置记录器来实现日志的输出路径.而在实际项目开发中,使用第三方日志框架(如: Log4Net.NLog.Loggr.Serilog.Sentry 等)来记录也是非常多的.首先一般基础的内置日志记录器在第三方日志框架中都有实现,然后第三方日志框架在功能上更加强大和丰富,能满足我们更多的项目分析和诊断的需求. 所以在这一篇中,我们将介绍第三方日志记录提供程序--Serilog 二.回顾 系统内置日志系列: 1. 基于.NetCore3.1…
Cookie管理后台管理,JWT对外提供接口验证 具体官方文档链接 使用 ASP.NET Core 中的特定方案授权 实现思路: 1.添加两种授权方式配置, AddAuthentication 的参数 defaultScheme  使用默认值,不进行赋值 2.对鉴权如有自定义策略,需要指定 AuthenticationSchemes 3.action的鉴权特性需要指明 AuthenticationSchemes 大体代码如下 services.AddAuthentication().AddCoo…
今日内容概要 数据演变史 数据库软件的本质 MySQL简介 下载与安装 基本配置 基本SQL语句 内容详细 1.数据演变史 # 1.单独的文本文件 没有固定的存放位置和格式 文件名:user.txt userinfo.txt data.txt 数据格式:jason|123 tony~123 kevin$123 """程序彼此之间无法兼容""" # 2.软件开发目录规范 规定了文件名和存储位置 """文件的查找变得简单…
以下理论内容copy自bootstrap中文网(一个不错的bootstrap学习网站). 栅格系统 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列.它包含了易于使用的预定义类,还有强大的mixin 用于生成更具语义的布局. 简介 栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中.下面就介绍一下 Bootstrap 栅格系统的工作原理: "行(…
css部分样式 圆框效果:border-radius:5px; 固定样式:position:fixed;悬浮窗在IE6中position:absolute其余浏览器可以用fixed: 使table中的表格横线出现一次:border-collapse:collapse; 使两个td的线消失:cellspaceing="0" cellpadding="0"; input添加图片居中方式:align="absmiddle"; 文本框textarea的宽…
目录 与 Vue.js 认识 VUE.JS是个啥?有啥好处? Vue 的目标 战前准备  VUE.JS环境 VUE.JS 尝试一下,你就明白 第一步 实例化VUE 对象 第二步VueAPP 调用数据 函数  (HTML 展示) 与 Vue.js 认识 VUE.JS是个啥?有啥好处? 就是实现  数据与视图实时绑定的前端框架(个人的初学理解) (读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. 自底向上设计是一种设计程…
一.面向过程和面向对象 1.面向过程 以我为中心,做一件事先干什么,在干什么,后干什么,有一套清楚完整的流程.核心是“过程”. 优点:将要解决的问题流程化, 编写相对简单 缺点:可扩展性差 2.面向对象 以对象为中心,做一件事不需要你清楚怎么做,你创建能做这件事的对象即可.对象是具体的事物,它能实现一定的功能. 优点:可扩展性强 缺点:编程的复杂度高于面向过程 二.面向对象如何编写 在现实世界中,是先有对象,然后后归类:在代码中,是先定义类,然后再创建对象 #定义类 格式: class 类名:…
一.认识函数 函数:对动作或者功能的封装 格式: 函数声明     def  函数名(): 函数体 函数调用     函数名() #定义函数 def xiao(): print("你的笑像一条恶犬") print("撞乱我心弦") # 调用函数 xiao() 二.函数的返回值 执行完函数之后. 我们可以使用return来返回结果 return的作用: 1.遇到return,函数结束,后面的内容不再执行 2.返回值.返回给调用方 如果return后面什么都不写,或干脆…
汉诺塔 题目 用1,2,...,n表示n个盘子,称为1号盘,2号盘,....号数大盘子就大.经典的汉诺塔问 题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于 印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小 顺序摞着64片黄金圆盘.上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱 子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘.我们 知道最少需要移动2^64-1次.在移动过程中发现,有的圆盘移动…
主题 之前Spring相关的一些类,比如Enviromnent,BenFactory都接触了一些.有一些收获.但是直接看代码很多方法都不知为什么这样写.哪里会用到.因为太底层了.不好理解..现在从高层次的调用开始再研究下.应该会有新的理解. 所以从一个Web应用初始化开始学习.看看它经历了哪些步骤.做了哪些事情. 之前对spring的dispatcherServlet有一点点研究(http://www.cnblogs.com/abcwt112/p/5283674.html). ContextLo…
在学习promise之前重温了Ajax的原生js实现, 在原生js中发送一个http请求首先new XMLHttpRequest() 然后定义状态变更事件 浏览器监听请求的状态,触发不同状态下相应的代码 promise 异步操作在运行或计算的时候不会阻止程序执行其它操作 这个异步操作就是promise,它代表异步操作执行的最终结果 异步操作过程中称为挂起(pending),结果(settled)可以是完成或拒绝, promise定义的then()方法注册的函数会在异步操作完成后立即执行 回调函数…