手动生成token_Token入门学习

一、为什么要使用Token(Token的意义)

在用户通过客户端向服务器端获取数据的时候,很多时候需要先判断其是否已经登录,那么,就会造成频繁的访问数据库,来判断其账号密码是否正确,来作出相应的响应,这样做,显然是不明智的,会大大的降低程序的效率。

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。这样就可以大大的减少数据库的访问次数,提升代码效率。

二、Token基本工作流程

1.客户端使用用户名和密码登录(第一次)

2.服务器验证用户名和密码,第一次未带token,需要到数据库验证,判断用户名和密码是否正确,若正确登录成功,并生成一个Token返回给客户端。

3.客户端将Token保存,如保存在Cookie中,在下一次访问服务器的时候带上Token和userid,服务器端检验Token的有效期,若有效,就能获取数据。(或许会疑惑,Token保存在本地,被劫持怎么办,这里,举一个简单的加密,使用URL、时间戳、token三者进行合并加盐签名,服务器端来校验。)

三、如何生成Token

1.使用设备号/设备mac地址作为Token,在客户端登录的时候获取设备的设备号/mac地址,将其发送到服务器端,服务器端根据一定的规则生成Token,并将其存放在session中。在每次访问的时候,先判断是否需要登录才能访问,若需要,则需要根据Token进行比对。

2.用session值来生成Token,那么客户端只需要发送用户名和密码就可以,但Token的有效期会受到Session的有效期影响。

java后端新人,学习中,如有错误,请不吝赐教。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值