一、使用JWT的思路

1.1、使用JWT的思路

用户认证通过会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带
JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需每次都请求认证服务完成授权。

1.2、JWT简介

JSON Web Tokens are an open, industry standard  method for representing claims securely between two parties。JWT.IO allows you to decode, verify and generate JWT。JSON Web令牌是一种开放的行业标准方法,用于在双方之间安全的表示声明。JWT.IO允许你节码,验证和生成JWT。

JWT它定义了一种简介的、自包含的协议格式,用于在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任。JWT可以使用HMAC算法或使用RSA的公钥/私钥对来签名,防止被篡改。

官网:https://jwt.io/

详细简介:https://jwt.io/introduction/

1.3、JWT令牌的优缺点

优点:

  • Jwt基于json,非常方便解析
  • 可以在令牌中自定义丰富的内容,易扩展
  • 通过非对称加密算法及数字签名技术,JWT防止篡改,安全性高
  • 资源服务使用JWT可不依赖认证服务即可完成授权

缺点:

  • JWT令牌较长,占存储空间比较大

1.4、令牌结构

1.5、令牌如何工作

二、JWT入门

2.1、生成公钥和私钥

JWT令牌生成采用非对称加密算法

1、生成密钥证书

//采用RSA算法生成证书包含公钥和私钥
keytool -genkeypair -alias waggagkey -keyalg RSA -keypass waggag -keystore waggag.keystore -storepass waggagkeystore

Keytool 是一个java提供的证书管理工具

  • alias:          密钥的别名
  • keyalg:       使用的hash算法
  • keypass:    密钥的访问密码
  • keystore:    密钥库文件名,xc.keystore保存了生成的证书
  • storepass:  密钥库的访问密码

2、查询证书信息

//查询证书信息
keytool -list -keystore waggag.keystore

3、删除别名

//删除别名
keytool -delete -alias waggagkey -keystore waggag.keystore

注意:密钥删除并不能删除文件

2.2、导出公钥

安装OpenSSL: http://slproweb.com/products.html

配置OpenSSL的PATH环境变量

//使用OpenSSL生成密钥
keytools -list -rfc --keystore waggag.keystore | openssl x509 -inform pem -pubkey

下面一段就是公钥内容

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn7/6W8BXEtfOr1GfNbue
lFC91NoBuO/j7I5Mnsr81d6M+s2AnOCxxX68+q9MI2Q5ZhBOueRxRuiE4lmbQij6
36MzIWGUybc7xSM6B5lk5CpuxzupffUTLVll2tjb4/8nXMlLHqAia3IM0ZdmvB09
JFHDomWjQycAYWVtsMedOW7eXaBVVqYIkLAPwnBk7npBQhjFBJ1c/d5YkwsM5WP5
+yt+I16T3bbadCAyC38rFlJZfoIgSPSvnadAuyH7JULwiSAZgMXYpqxBq00yppcw
KdNfE2e+Ncci7PlhXniUJ5D0HKqQCR+gpTS8roBve8HiTqQ9aD0hGeqlaFM6XKTM
tQIDAQAB
-----END PUBLIC KEY-----

安全认证之JWT令牌相关推荐

  1. Spring Cloud Feign如何实现JWT令牌中继以传递认证信息

    在上一篇实现了Spring Cloud资源服务器的定制化,但是又发现了一个新的问题,Spring Cloud微服务调用的过程中需要令牌中继.只有令牌中继才能在调用链中保证用户认证信息的传递.今天就来分 ...

  2. .NET Core + JWT令牌认证 + Vue.js 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!...

    DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"--.Net Core 的缩写: "Zeus"--中文译为宙斯, ...

  3. Day241242.单点登录方案【Jwt令牌、sessionredis、CAS认证服务器】 -springsecurity-jwt-oauth2

    1.单点登录与状态共享方案 随着企业的应用规模不断增大,一个单体应用很难满足用户量增长的需求,这就需要我们将单体应用集群化部署,或者将单体应用微服务化.在这个过程中,就涉及到两个问题: 集群应用之间如 ...

  4. 什么是JWT令牌认证?

    当下,JWT(JSON Web Token)令牌认证已经变得越来越流行.本文主要介绍JWT令牌认证与传统的Session会话认证机制的区别. 为什么需要认证? HTTP是一种无状态协议,那就意味着当前 ...

  5. 从零开始超详细的Spring Security OAuth2.0实现分布式系统授权(注册中心+网关+认证授权服务(JWT令牌验证)+资源调用服务)

    文章目录 一.OAuth2.0 1.介绍 2.例子 3.执行流程 二.Spring Cloud Security OAuth2 1.环境介绍 2.认证流程 三.整合分布式项目 1.技术方案 2.项目结 ...

  6. 开源干货!.NET Core + JWT令牌认证 + Vue.js通用动态权限(RBAC)管理系统框架[DncZeus]开源

    DncZeus 前言 关于 DncZeus DncZeus = Dnc + Zeus "Dnc"–.Net Core 的缩写: "Zeus"–中文译为宙斯,是古 ...

  7. Spring Security OAuth2.0认证授权三:使用JWT令牌

    历史文章 [Spring Security OAuth2.0认证授权一:框架搭建和认证测试] [Spring Security OAuth2.0认证授权二:搭建资源服务] 前面两篇文章详细讲解了如何基 ...

  8. ASP.NET Core 基于角色的 JWT 令牌

    原文:https://bit.ly/3vYljq3 作者:Rick Strahl 翻译:精致码农-王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能会去除一些本人实在不知 ...

  9. Angular之jwt令牌身份验证

    Angular之jwt令牌身份验证 demo https://gitee.com/powersky/jwt 介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种 ...

  10. OAuth2.0 使用 JWT令牌

    应用背景:当资源服务和认证服务不在一起时,资源服务使用RemoteTokenServices远程请求授权服务验证token,如果访问量较大较会影响系统的性能.这时可以考虑做进一步的优化,令牌采用JWT ...

最新文章

  1. jvm性能调优实战 - 30使用jmap和jhat摸清线上系统的对象分布
  2. (SpringMVC)数据处理及跳转
  3. dnslog盲注原理
  4. 11.SolrJ索引操作
  5. 【资源下载】921页《用Python3带你从小白入门机器学习实战》教程手册
  6. SLAM Cartographer(4)对象Node
  7. html5饼图的制作方法,html5制作饼图
  8. 利用ResultFilter实现asp.net mvc 页面静态化
  9. 计算机网络面试知识点
  10. Intel、AMD和Arm 告警:注意新的推断执行CPU漏洞!
  11. 【服务器】在 iPad 上运行 VSCode(宝塔+code server)
  12. 单片机原理及应用c语言版课后答案张才华,单片机原理及应用(C语言版)习题答案.doc...
  13. 第二届“马栏山”杯国际音视频算法大赛音乐节拍检测题参赛总结及分享(Rank7)
  14. 11款国外免费主机空间推荐_测试可用
  15. android手机rom物理存储器,手机ROM/RAM的区别
  16. java统计误码率_MATLAB通信工具箱来计算误码率
  17. 想学明白PostgreSQL,得先捋一捋体系架构
  18. ream完美转换XML、JSON 转载
  19. 深入探究宽字节注入漏洞与修补原理
  20. Vue+ant-design-pro(2)动态路由

热门文章

  1. java SE教程04
  2. CVE-2018-7490 uWSGI PHP Plugin目录遍历
  3. ElasticSearch常用搜索命令整理(长期更新...)
  4. 基于MATLAB与Python计算长时间遥感栅格图像的像元值变异系数(CV)
  5. 新手使用VS2013时常遇问题及解决方法
  6. 拆解大数据总线平台DBus的系统架构
  7. 如何提高团队管理能力4
  8. Zero-Shot Deep Domain Adaptation[reading notes]
  9. Python批量剪切mp3音乐
  10. 自强不息系列之Python 选择排序