微信小程序开发逻辑梳理
一、要考虑的点
1、登录方面(接口超时后要重新拉登录)(1)把登录封装一下,以便在各个接口超时时调用。
(2)做登录页面,登录完成后若不需授权则跳转活动页面,若还需授权则跳转至授权页面(获取信息,获取手机号)。
2、是否要做一个登录的标记:若为true,则已登录,若为false,则进行登录,并判断是否授权,获取用户信息。
3、***哪个页面作为首页
(1)不需在未登录状态下展示活动:授权页面作为首页,先进行授权,后进入活动。
(2)需在未登录状态下展示活动:活动主页作为首页,若有登录按钮,则此按钮为授权用户信息按钮,若无则做一个虚拟按钮,登录后展示真实按钮。
二、大致流程
1、主要的部分 : 先判断是否已授权
已授权:获取用户信息 =》获取缓存中的openid =》获取到=》跳转活动页面
未获取到=》进行登录
未授权:获取授权=》进行登录
2、授权页为首页: 先检查登录状态是否过期
未过期:判断是否已授权=》已授权:获取用户信息 =》获取缓存中的openid =》获取到=》跳转活动页面
未获取到=》到登录页面=》跳至活动页
未授权:到登录页面(登录,授权,手机号获取)=》跳至活动页
已过期(session_key失效):到登录页面(登录,授权,手机号获取)=》跳至活动页
缺点:
1)涉及到3个页面:授权页,登录页,活动页 页面跳转会有页面切换效果,太明显
2)因为授权页作为首页,所以需要登录页面作为中转页面,然后跳至活动页,否则首次登录和重登录会混淆。
3)接口超时重新登录,success后跳转活动页,需获取手机号码则跳转至授权页
授权页登录,success后跳活动页,需获取手机号码则不需跳转
所以导致:俩部分的登录没法写成一个公共方法,都是各自的,代码冗余。
3、活动页面为首页: 先判断是否已授权
已授权:检验是否过期=》未过期=》获取活动信息,参与活动
已过期=》调登录
未授权:点击授权按钮(以获取用户信息)=》调登录
调登录:wx.login =》传递后台code(保存opedId) =》判断授权状态=》获取用户信息。
若需传递用户信息则传递,若需手机号则跳转授权页面,授权后传递接口,success后跳转活动主页。
此时登录可封装为一个公共方法,在各处调用。