java客户端发送token_客户端与服务器交互中的Token

Token:在计算机身份认证中是令牌(临时)的意思,类似于 MD5 加密之后的长字符串

特点:1.随机性,不可预测  2.具有有限期 3.唯一

作用:1.防止重复提交  2.防止CSRF(跨站请求伪造)攻击

Token是服务器生成的一串字符串,以作客户端进行请求的一个令牌。

当第一次登录后,服务器生成一个Token并返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

目的就是为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库。

它的应用:

1.当用户首次登录成功之后,服务器就会生成一个token值(UUID);

2.服务器会保存这个值(保存在数据库中或者缓存中),再将这个token值返回给客户端;

3.客户端拿到token值之后,使用sp进行保存。

4.以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个token值附带到参数中发送给服务器;

5.服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值做比较。如果两个token值相同,说明用户登录成功过,当前用户处于登录状态,如果没有这个token值,没有登录成功。

代码仅供参考:

生成Token

$key = "APP_TOKEN_" . 122;

$val = md5("TOKEN_" . 122 . "_" . time()); // 32 JHJKbjkBJKGHGHGHSSS

$exptime = 86400*30;

$this->redis->setex($key, $exptime, $val);//有效期 30天

验证Token

$key = "APP_TOKEN_" .122;

if ( !$this->redis->exists($key) ) {

return false;

}

$user_token = $this->redis->get($key);

if ( empty($user_token) ) {

return false;

}

if ($token != $user_token) {

return false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值