zoukankan      html  css  js  c++  java
  • json web token(JWT)

    JWT一般用于处理用户身份验证数据信息交换

      用户身份验证:一旦用户登录,每个后续请求都将包含JWT,允许用户访问该令牌允许的路由,服务和资源。单点登录是当今广泛使用JWT的一项功能,因为它的开销很小,并且能够轻松地跨不同域使用。

      数据信息交换:JWT是一种非常方便的多方传递数据的载体,因为其可以使用数据签名来保证数据的有效性和安全性。

    JWT数据结构

      JWT的数据结构是 : A.B.C。 由字符点‘.’来分隔三部分数据。

      A - header 头信息

      B - payload 有效荷载

      C - Signature 签名

    1. header 

      数据结构: {“alg”: “加密算法名称”, “typ” : “JWT”}。alg是加密算法定义内容,如:HMAC SHA256 或 RSA;typtoken类型,这里固定为JWT

    2. payload

      payload数据块中一般用于记录实体(通常为用户信息)或其他数据的。主要分为三个部分,分别是:已注册信息(registered claims),公开数据(public claims),私有数据(private claims)。

      payload中常用信息有:iss(发行者),exp(到期时间),sub(主题),aud(受众)。前面列举的都是已注册信息。

      公开数据部分一般都会在JWT注册表中增加定义。避免和已注册信息冲突。

      公开数据和私有数据可以由程序员任意定义。

      注意:即使JWT有签名加密机制,但是payload内容都是明文记录,除非记录的是加密数据,否则不排除泄露隐私数据的可能。不推荐在payload中记录任何敏感数据。

    3. Signature

      签名信息。这是一个由开发者提供的信息。是服务器验证传递的数据是否有效安全的标准。在生成JWT最终数据的之前,先使用header中定义的加密算法,将headerpayload进行加密,并使用点进行连接。如:加密后的head.加密后的payload。再使用相同的加密算法,对加密后的数据和签名信息进行加密。得到最终结果。

    4. 更多信息看官网 https://jwt.io/
  • 相关阅读:
    提示“此Flash Player与您的地区不相容,请重新安装Flash”的解决办法
    python中安装并使用redis
    linux安装flash player来播放视频
    安装redis
    centos6.5安装无线网卡驱动并配置wifi
    centos安装java的jdk
    001-python简介
    源码
    进程间通信之综述
    图的概念
  • 原文地址:https://www.cnblogs.com/yangjiming/p/9182980.html
Copyright © 2011-2022 走看看