前言
随着前端开发的快速发展,越来越多的开发者从后端转向前端。而 Token 的鉴权方式也逐渐广泛地应用在前端开发中。JWT(JSON Web Token)是一个轻量级的身份验证和授权方式,已经成为前端开发中流行的鉴权方式之一。本文将介绍 npm 包 gg-jwt 的使用教程,帮助开发者更快地接入 JWT 鉴权。
gg-jwt 介绍
gg-jwt 是一个符合规范的 JWT 鉴权库,可以在前端轻松的使用 JWT 来完成用户的认证和授权。gg-jwt 提供了简单的方法来生成和验证 JWT Token,并且支持自定义设置 Token 的过期时间和 payload。
gg-jwt 的使用环境要求:
- 支持 Promise 的浏览器版本,或者 Node.js 6 以上版本
安装 gg-jwt
gg-jwt 可以通过 npm 安装:
npm install gg-jwt --save
使用 gg-jwt
生成 Token
在生成 Token 之前,需要先准备好需要加入到 payload 中的信息。根据实际需求,可以加入用户的 ID、名字、邮箱,或者其他需要保存的信息。
-- -------------------- ---- ------- ------ - --------- - ---- --------- ----- ------- - - ----- ----- ----- ------ ----------------------- ------- ----- - ----- ----------- - ------------------ ---------- -------------------------
以上代码将生成一个 Token,并将其打印在控制台上。
signToken(payload, secret)
方法接受两个参数:
payload
:要添加到 Token 中的对象,可以是任何信息secret
:用于签名的秘钥,必须保密,不应该公开
解析 Token
接下来,我们需要验证并解析这个 Token 是否有效,以确认用户是否被授权。为此,我们可以使用 verifyToken(token, secret)
方法来验证 Token。
-- -------------------- ---- ------- ------ - ----------- - ---- --------- -- --------- ----------- --- ----- ----- ----------- - ------------ -- ----- ----- ------------------------ --------- -------- ------- -- -- - --------------------- -- -------------- -- - -------------------------- ---
verifyToken(token, secret)
方法接受两个参数:
token
:需要验证的 Tokensecret
:用于签名的秘钥
verifyToken()
方法将返回一个 Promise,resolve 时将得到一个包含 payload 和 header 的对象 { payload, header }
。如果验证失败,则会 reject 返回一个 Error 对象。
自定义过期时间
默认情况下,gg-jwt 生成的 Token 没有过期时间。如果需要限定 Token 的有效时间,可以通过 expiresIn
对 Token 进行设置。
signToken()
方法第三个参数可以是一个对象,里面包含 expiresIn
和任意其他自定义设置:
-- -------------------- ---- ------- ------ - --------- - ---- --------- ----- ------- - - ----- ----- ----- ------ ----------------------- ------- ----- - ----- ------- - - ---------- ---- -- ----- -------- - ----- ----------- - ------------------ --------- --------- -------------------------
集成到 axios 请求中
当我们需要访问需要鉴权的 API 时,需要在每个请求中带上 Token。可以使用 axios 的拦截器来在每个请求中添加 Token。
-- -------------------- ---- ------- ------ ----- ---- -------- ------ - --------- - ---- --------- ----- ------- - - ----- ----- ----- ------ ----------------------- ------- ----- -- ----- ----------- - ------------------ ---------- ----- -------- - -------------- -------- -------------------------- --- -- -------- ----- ---------------------------------- -------- -- - ---------------------------- - ------- ---------------- ------ ------- -- ------- -- --------------------- -- -- ---- --------------------- ---------------- -- - --------------------------- -- -------------- -- - --------------------------- ---
接下来,每个请求都将自动带上 Token,以达到身份验证的目的。
结语
本文介绍了 gg-jwt 的使用方法,希望可以帮助开发者更快地接入 JWT 鉴权,保护应用程序的安全。当然,gg-jwt 只是一个小型的鉴权库,开发者在实际项目中还需要综合考虑其他因素,如 Token 的生成时机、存储方式、Token 的刷新等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055a4d81e8991b448d7ec6