学习
实践
活动
工具
TVP
写文章

关于token

讲token需要先复习一下cookie和session。

客户端保存用户信息的方式,也是session实现机制之一。

我们每次打开一个以前打开过的编辑栏,他可能会自动填写我们以前填的内容,这就是cookie机制啦。

但是cookie特别小,一般不超过4kb,所以只存一些用户信息。

session

存在服务端里用于验证客户端身份的,同时也带有一大堆自定义信息,这里就有很多操作了。

客户端访问服务端的时候,就会把这玩意留在服务器上。

不止是账号密码,比如客户端想知道你买了啥,就需要用到session啦。

但是session需要存在服务端上,很费服务端空气。

token

token相当于是进步的session,它不再需要存在服务器上了,只需要双方用算法验证即可。

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌。当客户端第一次访问服务端,服务端会根据传过来的唯一标识userId,运用一些算法,并加上密钥,生成一个Token,然后通过BASE64编码一下之后将这个Token返回给客户端,客户端将Token保存起来(可以通过数据库或文件形式保存本地)。下次请求时,客户端只需要带上Token,服务器收到请求后,会用相同的算法和密钥去验证Token。

最简单的Token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由Token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接Token请求服务器)。

盐:就是我们常见的md5算法啦。

使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:

  • 客户端使用用户名跟密码请求登录
  • 服务端收到请求,去验证用户名与密码
  • 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
  • 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者数据库里
  • 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  • 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

增加性能

同样,如果频繁获取该token,服务端就要多次进行计算,也非常浪费资源。

这时候我们就可以引入redis,用于保存token,把重复的token都拦下来!

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.syjhxy.ltd/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 关于解决token过期失效问题「建议收藏」

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内...

    全栈程序员站长
  • WeChat小程序的登录授权关于token

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6pRI53X5-1596903530186)(assets/image-2020...

    前端江太公
  • 关于批量请求refresh token的解决方案

    lilugirl
  • 关于单页面应用的 Token Storage 设计策略

    单页面应用(Single Page Application) 通过 API 调用同外界交互。调用 API 时我们通常需要在请求中附加访问令牌,即 Access ...

    Jerry Wang
  • 解析 Token to Token Vision Transformer

    Vision Transformer!的提出让我们看到了Transformer模型在图像方向的潜力,但其有一些缺点,如需要超大型数据集(JFT)预训练,才能达到...

    BBuf
  • 技术汇总:第十六章:关于登录与退出的token

    当两个设备都操作登录时,后操作的设备将具备登录权限,而之前登录的设备失去登录权限。

    Java廖志伟
  • 小米 token(token在哪里获取)

    近两年,物联网及其相关技术迅猛发展,各样的智能设备渐渐的走进了我们的生活,随之使用者们也变的越来越向往智能化的生活。但目前的智能家居市场产品分散,单一厂商很难完...

    全栈程序员站长
  • token身份认证机制(token怎么获取)

    1、很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, ...

    全栈程序员站长
  • Python 爬虫进阶必备 | 关于某电商 token 参数加密逻辑分析

    aHR0cHM6Ly9oYW9odW8uamlucml0ZW1haS5jb20vdmlld3MvcHJvZHVjdC9pdGVtP2lkPTMzODAyODQ5...

    咸鱼学Python
  • 关于OData modifying请求需要事先提供CSRF token 的讨论

    I have made some search in the internet and it seems the CSRF token mechanism is...

    Jerry Wang
  • 无效的token怎么解决_登录token

    在调用API接口时遇到了无效token的问题,网上搜了一大圈还以为是token时效的问题,最后发现是给需要授权的 API ,必须在请求头中使用Authoriza...

    全栈程序员站长
  • 关于 SAP Spartacus Oauth token 过期时间的处理和测试场景

    I use Spartacus 3.1.1 + Commerce 2011 setup locally. I change oauth2.accessToken...

    Jerry Wang
  • Token验证

    这一晃一个月不更文了,是不是小可爱们已经忘了我啊。这段时间工作任务繁重,再加上自己有学习其他知识,所以这段时间荒废了。至于是啥,之后你们就知道了,毕竟不学习,如...

    陈琛
  • token实现验证登录(token如何使用)

    可能还有很多小伙伴对token概念朦朦胧胧,今天笔者以项目中的用户登录的token验证需求跟大家讲讲其中的来龙去脉,希望能够理清大伙的思路。

    全栈程序员站长
  • Token认证

    爱撒谎的男孩
  • 获取token

    今天咱们来说说怎么通过代码来获取token 获得token的话首先会有甲方提供一些数据给你们

    全栈程序员站长
  • 错误提示:Syntax error on token “function”, delete this token

    发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/105706.html原文链接:https://javaforall.cn

    全栈程序员站长
  • vue登录判断token过期_vue token过期处理

    检查了所有代码都没有问题,在所有需要token的地方都能拿到正确的token,但是在verify时仍然走的err,打印出的错误为 invalid token

    全栈程序员站长
  • JSON WEB TOKEN

      JSON WEB TOKEN, 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特...

    默存

扫码关注腾讯云开发者

领取腾讯云代金券