We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
解决繁琐的小程序登录态管理的组件。
[TOC]
在微信xxx小程序中,用户可以通过多种方式登录xx号,进入对应的业务页面。但是,如果每次登录都需要清除登录态,再根据获得的code重新登录的话,这样代码较冗余,请求较多,性能较差。因此,我们需要写一个dologin组件。
微信xxx小程序登录账号,一共有几大业务来源,分别是:
其中需要带入参数做跳转登录的业务入口有外部小程序带登录态跳转、注册后登录、公众号模板消息。
dologin组件根据业务来源以及带入的参数,进行重置登录账号或者登录账号。
业务来源的多样性 业务来源比较多,未来还可能增加,保证dologin组件应对不同来源的兼容与包容性,方便后期各个来源状态管理、维护等。
重置登录的设计 巧妙运用setStorage缓存,请求初始化getStorage获取登录态,对比新旧登录态,如果发现不同,则重置登录,如果相同,则运用当前登录态登录。如果getStorage无值,则直接登录。
dologin组件的本质是一个登录的过程,具体实现原理如下:
其中第3步全局获取登录态后,根据是否有本地缓存登录态又分为重置登录和直接登录。如果没有本地缓存,则直接登录;反之,校验登录态是否一致,如果一致则直接登录,如果不一致,则重置登录。
dologin(暂不开源),以上实现原理供参考。
mtonhuang
The text was updated successfully, but these errors were encountered:
No branches or pull requests
[TOC]
一、背景
在微信xxx小程序中,用户可以通过多种方式登录xx号,进入对应的业务页面。但是,如果每次登录都需要清除登录态,再根据获得的code重新登录的话,这样代码较冗余,请求较多,性能较差。因此,我们需要写一个dologin组件。
二、业务要求
微信xxx小程序登录账号,一共有几大业务来源,分别是:
其中需要带入参数做跳转登录的业务入口有外部小程序带登录态跳转、注册后登录、公众号模板消息。
dologin组件根据业务来源以及带入的参数,进行重置登录账号或者登录账号。
三、技术难点
业务来源的多样性
业务来源比较多,未来还可能增加,保证dologin组件应对不同来源的兼容与包容性,方便后期各个来源状态管理、维护等。
重置登录的设计
巧妙运用setStorage缓存,请求初始化getStorage获取登录态,对比新旧登录态,如果发现不同,则重置登录,如果相同,则运用当前登录态登录。如果getStorage无值,则直接登录。
四、前端设计
dologin组件的本质是一个登录的过程,具体实现原理如下:
其中第3步全局获取登录态后,根据是否有本地缓存登录态又分为重置登录和直接登录。如果没有本地缓存,则直接登录;反之,校验登录态是否一致,如果一致则直接登录,如果不一致,则重置登录。
五、源码地址
dologin(暂不开源),以上实现原理供参考。
Contributing
mtonhuang
The text was updated successfully, but these errors were encountered: