背景
做过微信公众号开发的很多朋友可能都已经做过微信的授权登录功能,微信的授权登录是通过绑定需要授权的域名进行回调授权,然后我们的应用可以根据回调回来的code去微信那里换取用户信息,包括用户的昵称,头像,性别,城市等信息,还有一个该用户在对应公众号下的唯一标识,也就是openid,微信授权跟其他第三方的登录授权流程上很类似,参考官方文档就能快速接入。
博主在开发的时候遇到了一个比较棘手的问题,公司用来做H5项目的时候,授权使用的公众号只有一个,但是H5项目使用的域名有多个,微信授权规定一个微信服务号只能绑定唯一一个备案过的域名来进行授权,这样的话对于多个域名来说授权就显得比较麻烦了,为了更好的为公司的各种业务服务,博主利用业余时间基于Django开发了一套多域名统一授权系统。
实现了多域名,多公众号统一授权,微信分享JSSDK的统一管理(防止多项目同时请求Access Token导致失效的问题),自动生成分享所需要的签名等功能,给微信公众号的开发带来方便,节省了非常多重复开发的时间。
有这方面需要的朋友可以发邮件给我或者加我微信。
分析
开始之前根据业务的需要进行一个流程分析,博主公司有三个业务域名,假设为 h5.com, game.com, video.com,用来做授权的域名是 auth.com,每个业务域名下面又有很多项目,都是以目录的形式出现,比如 h5.com/project1/ 。
为了对众多的项目进行区分,博主给每个项目生成了一个唯一的项目ID,以方便对授权次数进行统计分析。
大概实现的功能如下图所示
由于此系统涉及到的知识点众多,关联性比较强,一篇博文难以讲解的全面,所以,有不清楚的地方可以直接联系我探讨。
此系统涉及到的知识点大概包括 Python开发、Django开发,Django的部署,Linux基础知识,Redis的使用方法,Django+Redis的联合使用,微信公众号的网页开发,微信开发的限制,域名知识等。
!!! 转载请先联系non3gov@gmail.com授权并在显著位置注明作者和原文链接 !!! 小黑屋
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。