1.token: 意思就是令牌。当用户登录 后,服务端会返回给客户端,以后客户端前来请求数据即可,不需要账号和密码。
2.为什么需要token?
由于http是无状态的协议,不知道是谁访问它的应用,每次用户请求数据,都会要求用户登录。因此,解决的办法:
当用户登录的时候,在服务端生成一条记录的id返回给客户端,客户端存储在cookie,当再次请求时,服务端会在服务器检查,如果找到,说明用户通过了身份验证,就把请求的数据返回给 客户端。
3.基于token的身份认证
不需要在服务器存储用户的信息。大致流程如下:
用户第一次登录—认证成功,生成token,返回给客户端—当客户端再次请求,携带token-----服务端会验证token,认证成功,就会返回数据。
4.利用token认证可以有几种方式:
a.用设备mac地址作为token
客户端:将mac地址作为参数传递到服务端,
服务端:保存mac在服务端的session中,当用户请求,将用户的token和服务端的token进行比对。缺点:服务端需要存储数据。
b.用sessionid作为token
客户端:携带用户名和密码。
服务端:接口到用户名和密码进行校验后,正确将本地的sessionid作为token返回给用户,以后请求只需要携带token请求数据即可。
此方式的优点是方便,不用存储数据,缺点就是当session过期时,客户端必须重新登录才能请求数据
参考文章:https://blog.csdn.net/javahongxi/article/details/79501172?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param