登录做两件事
1、告诉系统我是谁;
2、向系统证明我是谁;
二维码其实是字符串的图片表现形式
基于token的认证机制
1、首次登录客户端向服务器传送密码+设备信息进行认证;
2、服务端认证通过后,生成token与设备信息进行对应,并存储在服务端并将token回传到客户端;
3、客户端每次访问API时,需要携带token+设备信息作为验证信息;
4、服务端验证token+设备信息是否对应,验证通过后,返回API响应,验证不通过,拒绝服务;
特别注意:token是某个客户端私有的,即使有token,没有对应的设备信息,也是验证不通过的
二维码登录原理主要基于token的认证机制+二维码状态变化实现
1、二维码状态有三种:待扫描、已扫描待确认、已确认;
2、待扫描:PC端携带设备信息向服务端发送请求,服务端生成二维码ID与设备信息进行绑定,将二维码ID返回给PC端,PC端已二维码的形式显示二维码;
3、PC端通过轮询的方式向服务端查询二维码的状态是否发生变化;
4、移动端扫描PC端二维码,获取到二维码ID,移动端带二维码ID+移动端身份信息(token)发送给服务端,服务端验证身份信息通过后,将二维码ID与身份信息绑定,并生成临时token返回给移动端,二维码状态变为已扫描待确认;
5、移动端确认登录,并携带临时token请求服务端,服务端验证临时token通过后,改变二维码状态为已确认并生成PCtoken,PC端通过轮询知二维码状态.当为已确认状态时,返回PCtoken,后续PC端通过token可以返回API;