web扫码登录怎么实现,求个思路

peter
  • 63

最近在弄一个web即时通讯,里面有一个扫码登录功能。以前没做过,求有方面的高手谈谈。
如二维码怎么来的,web端如果监听手机扫码成功,并服务端发送过数据

回复
阅读 9.6k
3 个回答
步骤       WEB平台                手机
第1步      生成二维码
第2步     (ajax监控后台)          扫码
第3步     (ajax监控后台)          确定(后台异步通知WEB平台)
第4步      AJAX发现状态改变,登陆成功

ajax监控后台的流程:生成二维码后,

setTimeout(function(){
    //AJAX请求,检测状态
},5000);


1.前端调用后台生成二维码的API,获取到二维码图片和所包含的信息(通常是一个唯一ID)
2.前端检测(通过轮询或者websock,自己选择)是否有手机扫码,通过调用后台接口API,参数为上面的唯一ID
3.手机扫描二维码登陆,手机端可以获取到二维码里的信息ID,带上当前登陆用户ID和二维码里的ID调用后台接口。
后台存储这个二维码的数据,加上登录用户信息,当前台调用API时,给返回登录成功。
4.前端获取到登录成功,进行跳转

楼上说的很正确。我补充一下吧。
以微信为例
解决两个问题,<1>电脑从服务器获取是否有人扫了我这台电脑,并且授权登录。
然后app,要解决的是扫了之后,知道扫的人是谁,把这个人信息告诉给服务器。
对象<1>网站 <2>手机打开微信

流程
<1>web生成链接,链接制成二维码,一般用本地的cookies或者sessionid作为唯一表示的参数。

<2>app扫完之后,其实是进行授权操作,抓取用户信息,把用户信息跟请求中包含的cookies或者sessionid存到库里面
<3>web每隔几秒ajax请求后台,查询当前cookies或者sessionid是否有对应的登录信息,有则进行登录操作。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏