Flask中的JWT

本文介绍了Flask中如何使用JWT进行身份验证。JWT是一个轻量级的规范,用于在多个组织间传递安全信息。它包含头部、载荷和签名三个部分,其中载荷包含签发者、面向用户、接收方、过期时间和签发时间等标准字段。JWT通过签名确保数据传输的完整性,但不保证保密性。文章还讨论了JWT的使用原因、通讯流程,以及在Python中使用pyjwt库生成和验证JWT的方法,并提及JWT的安全防护机制。
摘要由CSDN通过智能技术生成

Flask中的JWT

  1. JWT认证
    Json Web Token(JWT)

    JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。

    JWT是一个有着简单的统一表达形式的字符串:
    在这里插入图片描述

    头部(Header)

    头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。 JSON内容要经Base64 编码生成字符串成为Header。

    载荷(PayLoad)

    payload的五个字段都是由JWT的标准所定义的。

    1. iss: 该JWT的签发者
    2. sub: 该JWT所面向的用户
    3. aud: 接收该JWT的一方
    4. exp(expires): 什么时候过期,这里是一个Unix时间戳
    5. iat(issued at): 在什么时候签发的

    后面的信息可以按需补充,JSON内容要经Base64 编码生成字符串成为PayLoad。

    签名(signature)

    这个部分header与payload通过header中声明的加密方式,使用密钥secret进行加密,生成签名。 JWS的主要目的是保证了数据在传输过程中不被修改,验证数据的完整性。但由于仅采用Base64对消息内容编码,因此不保证数据的不可泄露性。所以不适合用于传输敏感数据。

  2. 为什么使用JWT?
    解析: jwt (JSON WEB TOKEN) 是一个JSON格式的规范
    之前学过的认证方案: session的认证方案
    特点: 非常轻巧
    使用jwt替代session的原因:
    	session是基于cookie的,所以在android和ios中,并不通用。为了统一前端认证方案,使用jwt。
    备注:
    	我们一般说的jwt指的是jws。
    
  3. JWT的通讯流程

    在这里插入图片描述

  4. JWS
    jws是一个jwt的一种实现方式。
    数据格式:
    	header.payload.signature
    	1.header(头部):头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。 JSON内容要经B
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值