文学起点网
当前位置: 首页 文学百科

token 发行机制(简单理解token机制)

时间:2023-06-05 作者: 小编 阅读量: 5 栏目名: 文学百科

为防止token泄露)。验证成功后,服务端会生成一个token,然后把这个token发送给客户端。为了避免查询时间过长,可以将token放到内存中。token的加密token是很容易泄露的,如果不进行加密处理,很容易被恶意拷贝并用来登录。总结以上就是对于token在用户身份认证过程中的简单总结。

在简单理解cookie/session机制这篇文章中,简要阐述了cookie和session的原理。本文将要简单阐述另一个同cookie/session同样重要的技术术语:token。

什么是token

token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。

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

简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。

身份认证概述

由于HTTP是一种没有状态的协议,它并不知道是谁访问了我们的应用。这里把用户看成是客户端,客户端使用用户名还有密码通过了身份验证,不过下次这个客户端再发送请求时候,还得再验证一下。

通用的解决方法就是,当用户请求登录的时候,如果没有问题,在服务端生成一条记录,在这个记录里可以说明登录的用户是谁,然后把这条记录的id发送给客户端,客户端收到以后把这个id存储在cookie里,下次该用户再次向服务端发送请求的时候,可以带上这个cookie,这样服务端会验证一下cookie里的信息,看能不能在服务端这里找到对应的记录,如果可以,说明用户已经通过了身份验证,就把用户请求的数据返回给客户端。

以上所描述的过程就是利用session,那个id值就是sessionid。我们需要在服务端存储为用户生成的session,这些session会存储在内存,磁盘,或者数据库。

基于token机制的身份认证

使用token机制的身份验证方法,在服务器端不需要存储用户的登录记录。大概的流程:

  1. 客户端使用用户名和密码请求登录。
  2. 服务端收到请求,验证用户名和密码。
  3. 验证成功后,服务端会生成一个token,然后把这个token发送给客户端。
  4. 客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。
  5. 客户端每次向服务端发送请求的时候都需要带上服务端发给的token。
  6. 服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数据。

利用token机制进行登录认证,可以有以下方式:

a.用设备mac地址作为token

客户端:客户端在登录时获取设备的mac地址,将其作为参数传递到服务端

服务端:服务端接收到该参数后,便用一个变量来接收,同时将其作为token保存在数据库,并将该token设置到session中。客户端每次请求的时候都要统一拦截,将客户端传递的token和服务器端session中的token进行对比,相同则登录成功,不同则拒绝。

此方式客户端和服务端统一了唯一的标识,并且保证每一个设备拥有唯一的标识。缺点是服务器端需要保存mac地址;优点是客户端无需重新登录,只要登录一次以后一直可以使用,对于超时的问题由服务端进行处理。

b.用sessionid作为token

客户端:客户端携带用户名和密码登录

服务端:接收到用户名和密码后进行校验,正确就将本地获取的sessionid作为token返回给客户端,客户端以后只需带上请求的数据即可。

此方式的优点是方便,不用存储数据,缺点就是当session过期时,客户端必须重新登录才能请求数据。

当然,对于一些保密性较高的应用,可以采取两种方式结合的方式,将设备mac地址与用户名密码同时作为token进行认证。

APP利用token机制进行身份认证

用户在登录APP时,APP端会发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果验证成功,就会生成相应位数的字符产作为token存储到服务器中,并且将该token返回给APP端。

以后APP再次请求时,凡是需要验证的地方都要带上该token,然后服务器端验证token,成功返回所需要的结果,失败返回错误信息,让用户重新登录。其中,服务器上会给token设置一个有效期,每次APP请求的时候都验证token和有效期。

token的存储

token可以存到数据库中,但是有可能查询token的时间会过长导致token丢失(其实token丢失了再重新认证一个就好,但是别丢太频繁,别让用户没事儿就去认证)。

为了避免查询时间过长,可以将token放到内存中。这样查询速度绝对就不是问题了,也不用太担心占据内存,就算token是一个32位的字符串,应用的用户量在百万级或者千万级,也是占不了多少内存的。

token的加密

token是很容易泄露的,如果不进行加密处理,很容易被恶意拷贝并用来登录。加密的方式一般有:

  1. 在存储的时候把token进行对称加密存储,用到的时候再解密。
  2. 文章最开始提到的签名sign:将请求URL、时间戳、token三者合并,通过算法进行加密处理。

最好是两种方式结合使用。

还有一点,在网络层面上token使用明文传输的话是非常危险的,所以一定要使用HTTPS协议。

总结

以上就是对于token在用户身份认证过程中的简单总结。希望没有技术背景的产品经理们在和开发哥哥沟通的时候不要再被这些技术术语问住了。

作者:流年,互联网产品设计师,4年互联网产品设计经验。

本文由 @流年 原创发布于人人都是产品经理。未经许可,禁止转载。

题图由作者提供

,
    推荐阅读
  • 天天喝豆浆对皮肤有好处吗(每天喝豆浆对皮肤好吗)

    以下内容大家不妨参考一二希望能帮到您!因为豆浆是由黄豆压榨而成的,而黄豆中含有大量的大豆黄体酮,这是一种植物性的雌激素,具有雌激素的作用。雌激素能够调节内分泌,促进新陈代谢,具有一定的抗衰老的作用,对于女性来说更是很好的食疗养颜的饮品。所以天天喝适量的豆浆对于皮肤具有一定的好处,可以使人的皮肤更加光滑、富有弹性。

  • 自慰和性生活有啥差别 自慰和性生活有啥差别吗

    手淫和性生活的区别长期手淫会使阴茎头敏感衰弱,甚至危害未来正常夫妇的生活。性生活当然是两个物体摩擦幸福的手淫是你手动节奏感幸福的长期手动节奏感对龟头上数不清的小神经系统造成巨大损害的阴茎龟头敏感性衰弱。但是,性生活和手淫的不良影响不同,即使每天的性生活数量最多也是精力消耗,但是如果经常自慰的话,性器官阴茎会受到损害。

  • 干垃圾有哪些垃圾(关于干垃圾有哪些垃圾)

    纸巾、牙签、拖把、抹布、一次性筷子、陶瓷类,下面我们就来说一说关于干垃圾有哪些垃圾?我们一起去了解并探讨一下这个问题吧!

  • openapi单号查询(工商详细信息查询API)

    APISpace的工商详细信息查询API,支持输入公司全称/注册号/社会统一信用代码的任意一种,获得企业工商注册登记中包含的60多项全维度信息。

  • qq离线留言自动回复 qq离线留言自动回复是什么

    设置qq离线留言自动回复方法如下:1、打开电脑上的腾讯QQ,然后点击主页面左下方的三条横线按钮;2、点击页面中的设置按钮;3、在设置页面中,点击状态按钮;4、点击弹出页面中的自动回复设置按钮;5、选择一个你想要设置的自动回复句子,也可以点击添加,自己设置一个;6、在添加自动回复页面中输入你想要的自动回复句子,然后点击确定按钮;7、可以根据自己的需求设置鼠标键盘无动作多少分钟,可将状态切换至离开或其

  • 冬奥会吉祥物纪念币发行了吗(冬奥会吉祥物邮票)

    “冬奥会和冬残奥会吉祥物”邮票是本轮新老邮票行情中的大黑马,没有之一。据了解,目前“抗击疫情”套票成交价还在20元以上,是溢价幅度仅次于“冬奥会和冬残奥会吉祥物”邮票的强势品种。本人建议,应在适当的时机发行“核酸检测”邮票,每套两枚,面值2.4元,与“抗击疫情”邮票的套数和面值保持一致,发行量定为1000万套。

  • 护士工作日常的心情语录(护士工作日常的心情语录推荐)

    护士工作日常的心情语录?我们一起去了解并探讨一下这个问题吧!只有使病人满意才是我们所有工作的目的,都要明白我是为自己而工作,而不是做给长们看。人们说护士是天使,还因为护士从事着最平凡琐碎而繁忙的工作,不怕脏、不怕苦、不怕累、不惧感染的风险,时刻以救死扶伤,全心全意为人民服务为天职,不负国家的人民的期望。高度的责任感是我们的天职,精湛的技术是我们一生的追求,愿我们以真诚的技术,为您带来一缕温情。

  • 老年手机不出声音怎么办(老年手机没有声音怎么回事)

    解决老年手机不出声音的问题的方法:1、检查老年手机是否处于静音或振动模式。长按电源键后可以选择,就可以解除静音模式,或者按向上快捷键增大音量,具体看手机型号。老年手机一般都是超大内音量,超大喇叭,音质好,高音量扬声器,防止老年人漏接电话。

  • 剑风无双值不值得入手(无双日版发售日锁定9月)

    根据《剑风传奇》漫画单行本第38本中附带的宣传小纸条,《剑风传奇:无双》日版发售日确定为2016年9月21日,之前日版宣布登陆PS4/PS3/PSV三个平台。此后格里菲斯不幸遭遇剧烈变故,在绝望边缘,他选择把卡兹,把佣兵团其他战友都出卖了。侥幸存活下来的卡兹万念俱灰,孤身一人踏上旅途,准备找格里菲斯复仇。《剑风传奇无双》由KoeiTecmo旗下《无双》系列制作小组ω-Force来制作。

  • 魔兽争霸3 1.32发布时间(魔兽争霸3发布1.29版本更新)

    暴雪看来依然没有放弃《魔兽争霸3》这款经典游戏,就在今日,官方更新了1.29版本补丁,加入了对宽屏显示器的支持,并且还包含了一些英雄的属性技能平衡,让人觉得情怀满满。在这个RTS游戏日渐式微的年代,玩家们都对老一代经典游戏难以舍弃,希望暴雪能继续对《魔兽争霸3》提供更新支持,毕竟这是许多玩家儿时的记忆。