微信公众号授权多域名的解决方案


假设微信公众号授权域名为 wx.mysite.com,需要授权的域名为 app.mysite.com

使用 wx.mysite.com 下的目录来跳转到 app.mysite.com,以 http://app.mysite.com/index?id=2 地址为例,向 oauth2 接口的 REDIRECT_URI 参数传入 http://wx.mysite.com/redirect/index?id=2 地址。

oauth2 接口参考:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

oauth2 接口返回:

http://wx.mysite.com/redirect/index?id=2&code=0419p3Cc0YxTtG1nadCc0Ms7Cc09p3C8&state=1

通过 nginx 的配置,将此地址重定向到目标地址:

    server {
        listen 80;
        server_name wx.mysite.com;

        access_log  logs/wx.log  main;

        location /redirect/ {
            rewrite ^/redirect/(.*)$ http://app.mysite.com/$1 redirect;
        }

        location / {
            proxy_set_header Host $host;
            proxy_set_header X_Real_IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_pass http://127.0.0.1:1080;
        }
    }

其中的配置“rewrite ^/redirect/(.*)$ http://app.mysite.com/$1 redirect; ”将地址中的 /redirect 去掉,最后地址跳转至:

http://app.mysite.com/index?id=2

前一篇:
后一篇:

发表评论