一、背景与目标

问题背景:由于当前用户登录依托于三方系统微信作为认证和授权,所以用户登录需要向微信反复发起授权,冗长的的流程降低用户体验。
目标解决:减少用户主动授权申请,减少甚至避免用户一段时间内向微信发起授权登繁琐操作,一次登录后无感知进入。

二、流程与结构

2.1 整体流程图

 

2.2 整体uml图

 

2.3 流程说明

第一步:整体方案整体方向确定主流使用微信静默授权(snsapi_base),获取微信公众号下对应的openid进行数据库内作为凭证查询学习平台内的用户信息快速响应回传。
第二部:当通过openid的方式查询不到对应的用户数据判定为需要主动授权用户(新用户),拉起微信主动授权,用户同意授权则拉起微信主动授权(snsapi_userinfo),获取微信头像unionid登信息,对获取信息封装存储并且响应回传。
 
所有用户端(未登录)用户都会基于以上两个步骤完成授权和登录的过程。
优点:几乎可以做到,一次授权永久登录的操作(在保持数据活性情况下)。
缺点:会减少授权操作的同时,会出现微信用户名和其他信息同步不及时的情况需要额外补偿方案(用户主动授权再次授权拉取)。
 
微信开发链接:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html