JWT实现Token认证

JWT(Json Web Token)作为一种轻量级的身份认证和授权机制,广泛应用于分布式系统。本文介绍了JWT的基本组成(Header、Payload、Signature)、作用,以及如何使用auth0和hutool库进行JWT签名和认证的实践步骤。
摘要由CSDN通过智能技术生成

一、为什么使用JWT

随着技术的发展,分布式web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过token去取redis中的缓存的用户信息,随着之后jwt的出现,校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录更为简单。

二、JWT的概念

JWT全称为Json Web Token,说白了是什么呢? 就仅仅只是一个字符串而已,例如:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9obiBEb2UiLCJhZG1pbiI6dHJ1ZX0.OLvs36KmqB9cmsUrMpUutfhV52_iSz4bQMYJjkI_TLQ

该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景

2.1 JWT组成部分

JWT包含了三个主要部分:Header.Payload.Signature, 以“.”来进行分割,其示例如下所示:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

eyJuYW1lIjoiSm9obiBEb2UiLCJhZG1pbiI6dHJ1ZX0.

OLvs36KmqB9cmsUrMpUutfhV52_iSz4bQMYJjkI_TLQ

2.2 Header的作用

Header部分主要存储关于签名算法的信息,通常包含两个部分:token类型和采用的加密算法,大致源内容如下:{"typ":"JWT","alg":"HS256"} ,其中typ代表token类型,alg代表加密算法,然后使用Base64Url编码组成了Header部分,结果大致如:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

2.3 Payload的作用

Payload是一个数据实体,俗称Claim,JWT并不强制使用,它默认这一部分数据为业务数据,是系统业务需要的数据,可有可无,可多可少。一般在不特殊修改的情况下,主要包含几个部分: iss(签发者),exp(过期时间戳), sub(面向的用户), aud(接收方), iat(签发时间),

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值