主要原理

  1. 客户端使用用户名跟密码请求登录
  2. 服务端收到请求,去验证用户名与密码
  3. 验证成功后,服务端会签发一个 Token(服务端可以吧token保存在数据库或者redis中),再把这个 Token 发送给客户端
  4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  6. 服务端收到请求,然后去验证客户端请求里面带着的 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

主要存在的问题和疑问

  1. tonken的失效时间,每一次访问的时候需不需要更新下失效时间。
  2. 如果每次没有更新,即将过期的token需不需要提前通知更新(假如提前五分钟)

转载于:https://www.cnblogs.com/solitaryYang/p/7615227.html

基于Token的验证方式(JWT简笔)相关推荐

  1. JWT: 基于Token的验证

    现在SPA(Single Page Application, 单页面应用)和前后端分离已经是主流. 基于Token的验证非常适合这种构架. Difference between Token-based ...

  2. jwttoken解码_JWT: 基于Token的验证

    现在SPA(Single Page Application, 单页面应用)和前后端分离已经是主流. 基于Token的验证非常适合这种构架. Difference between Token-based ...

  3. 分布式认证方案-基于token的认证方式

    基于token的认证方式,服务端不用存储认证数据,易维护扩展性强, 客户端可以把token 存在任意地方,并且可以实现web和app统一认证机制.其缺点也很明显,token由于自包含信息,因此一般数据 ...

  4. Open***2.4.3 基于用户名密码验证方式(实战)

    安装部署参考"Open'×××安装部署文档" 基于用户名密码验证: 1.修改server.conf: tls-auth ta.key 0 # This file is secret ...

  5. 程序员过关斩将--更加优雅的Token认证方式JWT

    点击上方"蓝字"带你去看小星星 菜菜,上次你讲的cookie和session认证方式,我这次面试果然遇到了 结果怎么样? 结果面试官问我还有没有更好的方式? 看来你又挂了 别说了, ...

  6. token验证_java基于token的身份验证?读完之后,大部分程序员收藏了...

    什么是token? token相当于是一个令牌,在用户登录的时候由服务器端生成(基于用户名.时间戳.过期时间.发行者等信息进行签名),然后发放给客户端,客户端将令牌保存,在以后需要登录验证的请求中都需 ...

  7. 基于token的身份验证

    关于token what is token? token相当于是一个令牌,在用户登录的时候由服务器端生成(基于用户名.时间戳.过期时间.发行者等信息进行签名),然后发放给客户端,客户端将令牌保存,在以 ...

  8. Java实现Token登录验证(基于JWT的token认证实现)

    文章目录 一.JWT是什么? 二.使用步骤 1.项目结构 2.相关依赖 3.数据库 4.相关代码 三.测试结果 一.JWT是什么? 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流 ...

  9. 用户数据表设计借鉴 浅谈数据库用户表结构设计,第三方登录 基于 Token 的身份验证

    最近对用户数据表的设计比较感兴趣,看到了两篇比较好的文章. 浅谈数据库用户表结构设计,第三方登录 转载于: https://www.cnblogs.com/jiqing9006/p/5937733.h ...

最新文章

  1. Freemarker问答:
  2. Interesting Array
  3. *ctf 逆向math题解
  4. Spring事务 Transaction rolled back because it has been marked as rollback-only
  5. google +按钮_如何禁用或改善Google的Google+集成
  6. android 4.4 屏幕方向,Android4.4屏幕旋转功能
  7. 爬虫新宠requests_html 带你甄别2019虚假大学 #华为云·寻找黑马程序员#
  8. 关于一道面试题,使用C#实现字符串反转算法
  9. brew安装PHP7 swoole
  10. HTML URL编码
  11. 《大型网站技术架构》读后感
  12. 查看磁盘文件夹大小工具WinDirStat
  13. Windows上WinRAR.exe命令行参数说明
  14. 【linux内核分析与应用-陈莉君】系统调用机制
  15. Unable to start embedded Tomcat 解决方式(已解决)
  16. 计算图片中的物体的实际尺寸的一种方法
  17. 用c语言对文件进行加密
  18. 发送广播失败 Parcelable encountered IOException writing serializable object (name =xxxx).
  19. Spark环境搭建Standalone模式
  20. hosts.allow和hosts.deny

热门文章

  1. svm算法java实现_谁有用JAVA实现机器学习svm算法的代码,感激不尽
  2. 操作系统到底哪个好?windows好!
  3. python逐行读取数据_python – Pandas按行读取数据
  4. 桌面文件删除了怎么恢复
  5. 构建高并发高可用的电商平台架构实践
  6. 小程序发布上线流程_小程序怎么上线?
  7. 基于ssm手机供应商管理系统
  8. 求链表中的中点、上中点、下中点
  9. JavaScript中常用数组方法总结
  10. 【物联网毕设基础】单片机:RS485 通信与 Modbus 协议