商丘做网站,商丘网站优化,商丘网络推广,商丘网络公司
当前位置:首页 > 新闻资讯 > 建站经验 >

简单理解token机制

发表日期:2018-01-14 19:44聚圣源浏览次数: 本文关键词:简单,理解,token,机制,在,简单,理解,cookie,

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

  

简单理解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机制的身份验证方法,在服务器端不需要存储用户的登录记录。大概的流程:

  客户端使用用户名和密码请求登录。

  服务端收到请求,验证用户名和密码。

  验证成功后,服务端会生成一个token,然后把这个token发送给客户端。

  客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。

  客户端每次向服务端发送请求的时候都需要带上服务端发给的token。

  服务端收到请求,然后去验证客户端请求里面带着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是很容易泄露的,如果不进行加密处理,很容易被恶意拷贝并用来登录。加密的方式一般有:

  在存储的时候把token进行对称加密存储,用到的时候再解密。

  文章最开始提到的签名sign:将请求URL、时间戳、token三者合并,通过算法进行加密处理。

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

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

  总结

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

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

  本文由 @流年 原创发布。未经许可,禁止转载。

  题图由作者提供

如没特殊注明,文章均来自网络! 转载请注明来自:http://www.jushengyuan.com.cn/news/jzjy/9801.html

网站设计案例推荐

热门文章

站长工具综合查询里面SSL证书不...

SSL证书不安全是怎么回事?但是点进去这个提示后,显示的是别人的tdk是不是被劫持或者被黑了?...

日期:2018-03-27 浏览次数:1882

简洁而实用的版权信息可增色网...

打开网站,人们自然会从上往下浏览,首先映入眼帘的一定是BANNER主视觉,然后是网站主体内容部分。相比较而言,注意到网站底部版权信息的浏览者确实不多,但这并说明网站版权信...

日期:2018-03-05 浏览次数:1876

网站设计需要注意的3点问题...

对于网站设计来讲会受到很多因素的影响,而且不同类型的网站,在设计时需要体现的元素也不一样,比如说对于一个企业网站更想体现出品牌以及产品的特点,主要是对产品、企业信...

日期:2018-02-12 浏览次数:1805

企业网站为什么要改版 改版选择...

网站改版,是每个建站企业必须面临的工作。相信也有不少站长问,已经做好的企业网站,为何还要大费周章重新进行改版设计呢?下面小编就来给大家说说,企业究竟为什么要改变,并...

日期:2018-03-26 浏览次数:1333

永城网站制作:模板建站不可不...

随着互联网建站尤其是自助建站热潮不断高涨,建站行业涌现出越来越多的自助建站平台,这些平台普遍都提供网站模板可选。...

日期:2018-04-30 浏览次数:936

相关文章

简单理解cookie/session机制...

今天对cookie和session做一些简单的小总结,帮助我们在产品设计中更好的与开发哥哥们沟通。 cookie与session应用于互联网中的一项基本技术会话(用户与客户端的交互)跟踪技术,用来跟踪...

日期:2018-01-14 浏览次数:66

理解与沟通是蜕变为优秀网站设...

如果说内容是网站的血肉灵魂,那么设计一定是表达其价值的华丽外衣。人靠衣装福靠金装,而优秀的设计就是网站的包装,设计精美的网站总能快速吸引用户注意力,给人以赏心悦目...

日期:2018-01-14 浏览次数:62

学校如何快速搭建一个简单好用...

A5创业网是国内领先的创业资讯和服务平台,提供权威的创业资讯和精准的品牌营销服务。以创业融资动态、创业学院、产品经理、人物访谈为内容驱动,与互联网创业者共同进步。...

日期:2017-06-30 浏览次数:7

百度主动推送(实时)制作 简单...

A5创业网是国内领先的创业资讯和服务平台,提供权威的创业资讯和精准的品牌营销服务。以创业融资动态、创业学院、产品经理、人物访谈为内容驱动,与互联网创业者共同进步。...

日期:2017-06-30 浏览次数:3

确保用户重复访问的简单步骤...

您的首页上的一个简单的电子邮件订阅表单可以实现许多功能,即使在您的用户离开您的网址后,您的品牌仍然保持着您的意识。从您最喜欢的博客文章,只能由订阅者访问的视频或独...

日期:2017-07-01 浏览次数:4

随机推荐

H5建站让企业网站变身移动秀场...

快速搭建一个“一元云购”商城...

配送小哥福音!江湖外卖O2O系统...

2017年新环境下如何做好网站友情...

高性价比的美国虚拟主机BlueHo...

装修系统又添新姿势,你确定不...