简介:JWT是一种基于JSON的开放标准,用于在网络应用环境间传递声明。它具有紧凑、安全、跨语言和适用于分布式站点单点登录(SSO)场景的特点。本文将详细介绍JWT的概念、优势、认证过程和实例。
一、JWT概述
Json Web Token (JWT),根据官网的定义,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。
二、JWT优势
然后,使用以下代码生成JWT:
npm install jsonwebtoken
const jwt = require('jsonwebtoken');const secretKey = 'your_secret_key'; // 用于签名token的密钥const payload = {user_id: 123, // 用户IDusername: 'john_doe' // 用户名};const token = jwt.sign(payload, secretKey);console.log(token); // 输出生成的JWT
在验证过程中,需要提供用于签名token的密钥,并使用jwt.verify方法解码JWT。如果JWT有效,将返回解码后的payload对象。如果JWT无效或已过期,将抛出异常。
const jwt = require('jsonwebtoken');const secretKey = 'your_secret_key'; // 用于签名token的密钥const decoded = jwt.verify(token, secretKey);console.log(decoded); // 输出解码后的payload对象