一.是什么?
在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。
Token是服务端生成的一串字符串,客户端第一次登陆后,服务器返回Token,客户端进行本地存储,以后客户端携带token即可直接进行访问,无需用户名和密码。
二.为什么出现?
减轻服务器的压力,减少频繁的向服务端连接数据库次数,减少频繁的进行信息验证。
三.用在哪(产生背景)?
Token是在客户端频繁向服务端请求数据。服务端频繁的去数据库查询用户名和密码进行对比,进行判断对比,在这样的背景下,Token应运而生。
四.怎么用?
1.用设备号/设备mac地址作为Token(推荐)
客户端:客户端在登陆的时候获取设备的设备号/mac地址,并将其作为参数传递到服务端。
服务端:接收到参数后,用一个变量接受同时将其作为Token保存在数据库,并将Token设置到session中。接下来的客户端每次请求,将客户端的token与服务端session中token进行比较,相同放行,不同则拒绝。
分析:缺点是服务端需要进行保存传递的设备号/mac地址;优点是客户端不用重复输入密码,超时问题由服务端解决:若服务器Session中的Token超时后,则重新去数据库进行查询,没有则进行新的Token存储操作。
2.用session值作为Token
客户端:只需要携带用户名和密码登陆即可
服务端:接受参数后进行判断,正确则将本地sessionID作为Token返回个客户端,客户端以后携带请求数据访问即可。
分析:优点是方便,缺点是session过期后,客户端必须重新登陆才能进行数据访问。