JWT(Json Web Tokens)是一种基于 JSON 格式的 Web 前端认证/授权系统,通常使用在基于 Token 的身份验证系统(比如 OAuth 2.0)。JWT 采用了自包含的方式来传递信息,因此可以减少对后端服务器的请求以及响应时间。本文将介绍 npm 包 jwtcli 的使用教程,帮助读者更好地实现 JWT 认证/授权。
安装 jwtcli
首先,我们需要用 npm 进行 jwtcli 包的安装。在终端中运行以下命令:
npm install -g jwtcli
注意:需要用管理员权限安装。
生成 JWT Token
我们可以使用 jwtcli 来生成 JWT Token。可以通过以下命令来生成:
jwtcli encode [payload] [secret]
其中,payload
为 JSON 格式的字符串,即我们要生成 Token 中携带的信息。secret
为生成 Token 的密钥,用于防止 Token 被篡改。例如,我们可以生成以下的 Token:
jwtcli encode '{"id": "123456", "name": "John Doe", "email": "johndoe@gmail.com"}' mysecretkey
生成的 Token 如下:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMzQ1NiIsIm5hbWUiOiJKb2huIERvZSIsImVtYWlsIjoiam9obmRvZUBnbWFpbC5jb20iLCJleHAiOjE1MTYyMzkwMjJ9.nBhehTJmrV_sUhfyE3NfV7HwlEnJjozPBb1g2ZibYv0
解码 JWT Token
我们可以使用 jwtcli 来解码 JWT Token,以便了解 Token 中包含的信息。可以通过以下命令来解码:
jwtcli decode [token] [secret]
其中,token
为需要解码的 Token,secret
为生成 Token 的密钥。
例如,我们可以使用以下命令解码上文生成的 Token:
jwtcli decode eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMzQ1NiIsIm5hbWUiOiJKb2huIERvZSIsImVtYWlsIjoiam9obmRvZUBnbWFpbC5jb20iLCJleHAiOjE1MTYyMzkwMjJ9.nBhehTJmrV_sUhfyE3NfV7HwlEnJjozPBb1g2ZibYv0 mysecretkey
解码后的结果如下:
{ "id": "123456", "name": "John Doe", "email": "johndoe@gmail.com", "exp": 1516239022 }
持久化存储 JWT Token
我们可以使用 localStorage 等方式在浏览器端将 JWT Token 进行持久化存储。然后在向后端服务请求时,从持久化存储中获取 JWT Token 并提交到服务端进行验证,这样可以减少反复请求 Token 的开销。以下是一个示例代码:
-- -------------------- ---- ------- -- -- ----- ----- ----- - -------------------------------- -- ---- ------------------- - -------- - -- - ----- ------ ---------------- ------- --------- - -- -------------- -- - -- ------------- - ------ ---------------- - ---- - ----- --- -------------- ---------- - -- ---------- -- - ------------------ -- ------------ -- - ------------------- ---
结语
通过本文的介绍,我们了解了 npm 包 jwtcli 的使用,包括生成和解码 JWT Token,以及如何将 Token 进行持久化存储。这些技能可以辅助我们更好地构建基于 JWT 的前端认证/授权系统,提供更好的用户体验和更高的安全性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055d1e81e8991b448dabf7