Token在项目中的应用

323 阅读3分钟

1、登录功能的实现「Token生成流程」:

  • 点击登录按钮后会进入登录页面,用户需要填写用户名,密码以及验证码去进行提交。 客户端使用用户名和密码请求登录
  • 在service层对提交的表单数据进行验证,判断用户,密码,验证码是否正确,首先我们定义一个空的map,如果用户名不存在,则返回map中的v为“该用户不存在”。 服务端收到请求,去验证用户名和密码
  • 如果都正确,会生成一个token,将token返回给浏览器cookie保存并将token(key)和user的用户信息(value)保存在redis(hash)中 验证成功后,服务端会签发一个Token,再把这个Token发送给客户端。客户端收到Token以后可以把它存储起来,比如放在Cookie里。客户端每次向服务端请求资源的时候需要带着服务端签发的Token。服务端收到请求,然后去验证客户端请求里面带着的Token,如果验证成功,就向客户端返回请求的数据。

Token的生成过程是通过加密算法将用户身份相关的信息(用户ID、用户名、密码等)和随机字符串等数据生成一个唯一的Token,用于身份验证和授权。同时,Token还具有过期时间等特性,以保证用户的安全性和数据的保密性。

Token是由服务端生成的一个唯一标识符,通常是由随机生成的一串字符组成,目的是为了确保Token的随机性和安全性。

2、token 包含以下信息

  1. 用户 ID:用于识别用户身份。
  2. 过期时间:该 token 的有效期限,一旦过期,该token将失效。
  3. 签名:用于验证token的真实性,防止token被篡改。

这些信息通常是在服务器端生成并签名后,作为响应的一部分返回给客户端。客户端在后续的请求中需要在请求头或请求体中携带该 token,以便服务器端能够识别请求的来源并验证其合法性。

退出:

  • 将登录凭证修改为失效状态
  • 跳转至网站首页

3、token怎么生成的,用什么数据生成?

Token由一段文本(如用户ID、用户名、会话ID等)生成的加密字符串的方法,通常使用哈希算法(如SHA-256、SHA-512等)来对文本进行加密,并将加密后的结果作为Token的字符串表示。

具体实现步骤如下:

  1. 将文本转换为UTF-8编码的字节数组。
  2. 使用哈希算法对字节数组进行加密,生成另一个字节数组。
  3. 将加密后的字节数组转化为字符串,作为Token的加密字符串。

常见的实现库有JWT(JSON Web Token)、Python中的itsdangerous库等。

4、在论坛项目中,token主要用于以下几个方面

  1. 用户登录:用户在登录成功后,服务器会生成一个token,将其返回给客户端,客户端在后续请求中将token携带上来,服务器通过验证token来确定用户是否已登录;
  2. 权限控制:服务器通过解析token中的用户信息,来判断用户是否有权限访问请求的资源;
  3. 单点登录:如果用户在多个客户端登录了同一个账号,服务器可以通过token来判断是否已在其他客户端登录,从而实现单点登录的功能。