当用户输入完用户名和密码后,客户端会将这些凭据发送到后端服务器进行验证。后端服务器会根据用户名和密码的正确性来生成一个 token。生成 token 的过程可以包括以下几个步骤:
这样的流程可以保证用户的身份验证,并且在后续的请求中使用 token 来进行身份认证和授权。
- require('dotenv').config({ path: '../../.env' })
-
- const jwt = require('jsonwebtoken')
- const key = process.env.JWT_SECRET
-
- // 加签 : 根据密钥生成token ;
- // token : 头部(签名算法).负载(携带的数据).签名(对头和负载进行加密)
- const sign = (email, username,) => {
- return new Promise((resolve, reject) => {
- jwt.sign({ email, username, }, key, (error, token) => {
- if (error) {
- return reject(error)
- }
- return resolve(token)
- })
- })
- }
-
- // 解签 :跟据密钥验证token
- const decode = (token) => {
- return new Promise((resolve, reject) => {
- jwt.verify(token, key, (error, decoded) => {
- if (error) {
- return reject(error)
- }
- return resolve(decoded)
- })
- })
- }
-
- module.exports = {
- sign,
- decode
- }
token:加密和解密的过程