zoukankan      html  css  js  c++  java
  • Identity Server4学习系列二之令牌(Token)的概念

    1、简介

    通过前文知道了Identity Server4的基本用途,现在必须了解一些实现它的基本细节.

    2、关于服务端生成Token令牌

    头部(Header):

    { 
    “typ”: “JWT”, //token的类型
    “alg”: “HS256” //Token使用的加密算法
    } 

    将头部使用Base64编码可得到如下个格式的字符串:

    eyJhss6iOaaJIUasddasd

    有效载荷(用户信息等关键信息):

    { 
    “iss”: “Online JWT Builder”, //token的签发者
    “iat”: 666666, //签发时间
    “exp”: 66666, //过期时间
    ……. 
    “userid”:10001 //用户Id
    //下面可以继续编写用户信息,但不能存放敏感信息 }

    有效载荷也使用Base64编码得到如下格式的字符串:

    eyJhss6iOaaJIUasddasd

    接着将Header和Playload拼接生成一个字符串“eyJhss6iOaaJIUasddasdeyJhss6iOaaJIUasddasd”,使用HS256算法对该字符串进行加密,得到的字符串在通过我们提供的密钥(secret,服务器自己提供的一个字符串)对字符串进行证书签名字符串,最终得到一个包含头部信息(Base64字符串)和有效载荷(用户信息等Base64字符串)和一个进行层层加密的签名字符串组成的一个JWTtoken

    3、关于服务端如何解密令牌

    当用户登陆成功后,继续访问页面,那么会带上这个token,服务端拿到token之后,对头部信息和有效载荷在进行一次HS256算法和使用当前用户对应的密钥进行一次签名,判断这个签名是否和token中的签名是否一致,就可以判断这个token是否有效.因为密钥存在我们服务器上,别人不可能能伪造.

    4、Token的优点

    不用保存在服务器,Session需要保存在服务器,而且Session不能跨服务器,只能保存在一台服务器上,所以当用户登陆了这个站点,那么做了负载均衡后,下次访问必须还是访问这个站点,所以可扩展性强比较灵活.

     

  • 相关阅读:
    vue自定义指令clickoutside使用以及扩展用法
    抓包工具Charles的使用教程
    vue之element-ui文件上传
    Vue省市区三级联选择器V-Distpicker的使用
    Vue如何封装多个全局过滤器到一个文件
    vue工程中使用iconfont在线CDN不生效的问题
    es6 Null 传导运算符
    js中布尔值为false的六种情况
    vue-vli3创建的项目配置热更新
    js思维导图
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/10111923.html
Copyright © 2011-2022 走看看