基于Token的验证方式(JWT简笔)
主要原理
- 客户端使用用户名跟密码请求登录
- 服务端收到请求,去验证用户名与密码
- 验证成功后,服务端会签发一个 Token(服务端可以吧token保存在数据库或者redis中),再把这个 Token 发送给客户端
- 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
- 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
- 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
JWT
实施 Token 验证的方法挺多的,还有一些标准方法,比如 JWT,读作:jot ,表示:JSON Web Tokens 。JWT 标准的 Token 有三个部分:
- header
- payload
- signature
header 部分主要是两部分内容,一个是 Token 的类型,另一个是使用的算法,比如下面类型就是 JWT,使用的算法是 HS256。
Payload 里面是 Token 的具体内容,这些内容里面有一些是标准字段,你也可以添加其它需要的内容。下面是标准字段:
- iss:Issuer,发行者
- sub:Subject,主题
- aud:Audience,观众
- exp:Expiration time,过期时间
- nbf:Not before
- iat:Issued at,发行时间
- jti:JWT ID
JWT 的最后一部分是 Signature ,这部分内容有三个部分,先是用 Base64 编码的 header.payload ,再用加密算法加密一下,加密的时候要放进去一个 Secret ,这个相当于是一个密码,这个密码秘密地存储在服务端。
- header
- payload
- secret
主要存在的问题和疑问
- tonken的失效时间,每一次访问的时候需不需要更新下失效时间。
- 如果每次没有更新,即将过期的token需不需要提前通知更新(假如提前五分钟)
转载于:https://www.cnblogs.com/solitaryYang/p/7615227.html
基于Token的验证方式(JWT简笔)相关推荐
- JWT: 基于Token的验证
现在SPA(Single Page Application, 单页面应用)和前后端分离已经是主流. 基于Token的验证非常适合这种构架. Difference between Token-based ...
- jwttoken解码_JWT: 基于Token的验证
现在SPA(Single Page Application, 单页面应用)和前后端分离已经是主流. 基于Token的验证非常适合这种构架. Difference between Token-based ...
- 分布式认证方案-基于token的认证方式
基于token的认证方式,服务端不用存储认证数据,易维护扩展性强, 客户端可以把token 存在任意地方,并且可以实现web和app统一认证机制.其缺点也很明显,token由于自包含信息,因此一般数据 ...
- Open***2.4.3 基于用户名密码验证方式(实战)
安装部署参考"Open'×××安装部署文档" 基于用户名密码验证: 1.修改server.conf: tls-auth ta.key 0 # This file is secret ...
- 程序员过关斩将--更加优雅的Token认证方式JWT
点击上方"蓝字"带你去看小星星 菜菜,上次你讲的cookie和session认证方式,我这次面试果然遇到了 结果怎么样? 结果面试官问我还有没有更好的方式? 看来你又挂了 别说了, ...
- token验证_java基于token的身份验证?读完之后,大部分程序员收藏了...
什么是token? token相当于是一个令牌,在用户登录的时候由服务器端生成(基于用户名.时间戳.过期时间.发行者等信息进行签名),然后发放给客户端,客户端将令牌保存,在以后需要登录验证的请求中都需 ...
- 基于token的身份验证
关于token what is token? token相当于是一个令牌,在用户登录的时候由服务器端生成(基于用户名.时间戳.过期时间.发行者等信息进行签名),然后发放给客户端,客户端将令牌保存,在以 ...
- Java实现Token登录验证(基于JWT的token认证实现)
文章目录 一.JWT是什么? 二.使用步骤 1.项目结构 2.相关依赖 3.数据库 4.相关代码 三.测试结果 一.JWT是什么? 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流 ...
- 用户数据表设计借鉴 浅谈数据库用户表结构设计,第三方登录 基于 Token 的身份验证
最近对用户数据表的设计比较感兴趣,看到了两篇比较好的文章. 浅谈数据库用户表结构设计,第三方登录 转载于: https://www.cnblogs.com/jiqing9006/p/5937733.h ...
最新文章
- Freemarker问答:
- Interesting Array
- *ctf 逆向math题解
- Spring事务 Transaction rolled back because it has been marked as rollback-only
- google +按钮_如何禁用或改善Google的Google+集成
- android 4.4 屏幕方向,Android4.4屏幕旋转功能
- 爬虫新宠requests_html 带你甄别2019虚假大学 #华为云·寻找黑马程序员#
- 关于一道面试题,使用C#实现字符串反转算法
- brew安装PHP7 swoole
- HTML URL编码
- 《大型网站技术架构》读后感
- 查看磁盘文件夹大小工具WinDirStat
- Windows上WinRAR.exe命令行参数说明
- 【linux内核分析与应用-陈莉君】系统调用机制
- Unable to start embedded Tomcat 解决方式(已解决)
- 计算图片中的物体的实际尺寸的一种方法
- 用c语言对文件进行加密
- 发送广播失败 Parcelable encountered IOException writing serializable object (name =xxxx).
- Spark环境搭建Standalone模式
- hosts.allow和hosts.deny