假设微信公众号授权域名为 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