域名授权(如何解决微信授权域名只能设置一个的问题)

背景商户接入微信公众号支付的时候需要在微信配置授权域名,而这个授权域名只能配置一个,公众号支付需要先获取用户的授权,获取授权的过程中需要先获取code,同时提供一个redirect_uri供授权成功后回调,这个redirect_uri必须是在这个授权域名下,比如我们配置的域名是abc.com,则redirect_uri必须类似 https://abc.com/a/b面临的问题我们一般开发过程中都会有多套环境,比如最基本的测试环境&生产环境,而且一般测试环境和生产环境域名不同,这样就会导致测试过程中需要切换授权域名,而我们一旦发布到生产环境后,再想测试就难啦,如果我们直接改成测试域名去测试就会导致生产环境无法正常运行,另外由于我们配置授权域名的过程中,微信会要求我们从微信那下载一个认证文件然后放到域名的根目录下,这样就需要分别在测试环境和生产环境去配置,流程特别繁琐解决方案既然只能设置一个域名,那我能不能专门搞个域名做这个事情呢,授权域名设置成我的域名,所有请求微信授权的请求都经过我,同时微信回调的时候也先回调我,我再回调到业务系统,于是就有了此解决方案,两种方案的对比如下传统授权逻辑改进版授权逻辑github地址https://github.com/zhoudapeng/common-oauth如何使用本系统基于springboot构建了一个轻量级的工程,开发者只需要修改下application.yml中的配置,主要是oauth.domain,启动端口和url可以按需修改,然后直接启动此jar包,启动方式:java -jar common-oauth-1.0.jar ,然后让运维人员配置nginx,将特定url指向此服务的ip&port即可


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/37550/