实现客户端扫码登录分为下列四步:

1.    Web页面生成二维码

生成的二维码中必须要包含一个用于唯一标识用户的数据,这个唯一标识是为了确保将客户端(手机)与web网页绑定,避免其他人登录了你的账号。在这里可以生成以个随机的guid作为唯一标识。
生成二维码,大家可以使用jQuery qrcode插件。

2.   客户端扫描二维码

客户端在扫描二维码之前需要验证是否已经登录了账号,如果没有登录,则需要提示用户先登录。如果已经登录了,那么在扫描了二维码后应读取唯一标识guid并将sessionID一并发送给后台服务器(例如Java)。

3.    通过GoEasy服务器主动告知web网页登录成功


后台服务器接收到请求后通过GoEasy将sessionID主动推送给拥有相同唯一标识的web网页。

GoEasy后台实时推送到web

Ruby实现二维码扫码登录

4.    Web浏览器设置登录的相关cookie信息

Web浏览器收到消息中包括了登录相关的sessionID,浏览器通过javascript代码就可以把cookie加入到浏览器中,这是浏览器就完成了登录。