一、PC端的逻辑web
用户点击二维码按钮,向后台发送建立二维码的ajax异步请求,后台生成二维码后以二进制数据流的形式返回给前台,再把以base64编码的图片放到<imge>中,显示到页面上。在生成二维码的同时也把二维码中的请求Id:req_Id和建立时间插入wait_login表中。ajax
将图片显示在页面后发起ajax异步请求,把req_id放在请求中传到后台,,建立callable线程开始轮询wait_login表,看是否有数据变化,若是有,就获取用户Id,并查询用户头像,放在返回值当中,传到前台显示。服务器
显示头像后再次发起ajax异步请求,把用户Id和req_id放在请求中传到后台,建立callable线程开始轮询web_token表,看是否有req_id和用户Id的变化,若是有,则获取token Id,跳转到用户主页,登陆完成。异步
二、移动端逻辑编码
扫描二维码后调用服务器接口,判断该扫描的二维码是否有效,若是有效则把手机的信息更新在wait_login表中,并返回状态码,显示肯定登陆页面。线程
点击肯定登陆后,调用服务器端接口,生成tokenId,插入web_login中。token
登陆完成接口