当用户输入完用户名和密码后,客户端会将这些凭据发送到后端服务器进行验证。后端服务器会根据用户名和密码的正确性来生成一个 token。生成 token 的过程可以包括以下几个步骤:
- 后端服务器接收到用户名和密码。
- 服务器会验证用户名和密码的正确性。这通常涉及到查询数据库或其他验证方式。
- 如果验证成功,服务器会生成一个 token。
- token 可以是一个包含用户信息和其他必要信息的加密字符串。常见的生成 token 的算法有 JWT(JSON Web Token)等。
- 服务器将生成的 token 返回给客户端。
- 客户端在后续的请求中将 token 放在请求的头部或者请求参数中。
- 后端服务器在接收到请求时,会验证 token 的有效性,确保请求是来自合法的用户。
这样的流程可以保证用户的身份验证,并且在后续的请求中使用 token 来进行身份认证和授权。
javascript
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:加密和解密的过程