在日常开发中越来越多的使用到微信开放平台的OAuth授权认证实现登录逻辑,这样即能快速的开发,又能依托于微信帝国的强大用户量来实现用户转化。但是从网站方出发点看,我们可以做更多事情,更好与用户进行交互,以便更高效的转化用户。
微信开放平台登录
传统的微信开放平台登录的流程为:
- 扫描二维码
- 在手机端微信确认登录
- 接收到微信消息提醒
就是这个第三步对于我们是在是没什么用处,如果这里收到的是我们定制的一些信息那就太棒了,比如说登录成功后用户接收到一些网站方的推广信息。
微信公众号平台登录
下面我们就利用公众号平台的网页授权机制来实现登录功能:
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
- 分配登录二维码:
因为微信网页授权是没有二维码扫描的步骤的,所以二维码要自己生成。又因为,整个登录流程中涉及的到三方设备(Server、手机、web),导致session无法得到共享,所以要分配身份标识(本例中使用uuid)。 - web 端进行长轮询
当手机进行扫码动作时,导致web端的进程中断,服务端无法通知浏览器登录状态,所以web端浏览器要和Server端保持长连接(推荐使用websocket)进行通讯。 - 手机端微信扫码
- 手机微信内显示登录成功后的网页
这四步中其实主要问题就在于如何进行手机和web的session映射,进而使用长连接通知浏览器登录状态。当登录成功后,我们可以自主的向用户推送我们想要用户看到的页面。