微信開發本地內網調試方法 轉
- 2019 年 10 月 8 日
- 筆記
簡介
- 由於微信瀏覽器中獲取用戶信息的回調地址必須是已經ICP備案的域名。這樣就導致無法本地開發比較麻煩,解決方案為內網穿透,如ngrok(二級域名每次啟動會變化)、花生殼(需要支付8元)、NATAPP(和ngrok類似,本文使用)。
- 本程序基於微信開發者工具完成調試
NATAPP使用
- 註冊NATAPP並實名認證
- 購買隧道 – 免費隧道 – Web(端口80)- 購買之後可在我的隧道中查看 – 複製
authtoken
- 下載NATAPP客戶端
natapp.exe
- 在客戶端根目錄cmd運行
natapp -authtoken=上文提到的authtoken
。命令行會出現類似Forwarding http://smalle.natappfree.cc -> 127.0.0.1:80
的顯示。(表示訪問在瀏覽器中訪問http://smalle.natappfree.cc時相當於本地訪問127.0.0.1:80)- 或者寫入xxx.bat文件快速啟動:
D:/software/natapp.exe -authtoken=12347dc3f25a1234
- 或者寫入xxx.bat文件快速啟動:
啟動本地web項目
本地項目是基於nginx反向代理服務器實現(apache也可)
- 下載nginx並安裝,配置
nginx.conf
文件,如: server { listen 80; server_name localhost; location / { root C:/Users/smalle/Desktop/web; index index.html index.htm; } - 將web項目拷貝到配置中的root路徑
- 啟動nginx(此時可通過http://127.0.0.1或http://smalle.natappfree.cc訪問)
配置回調地址
- 微信後台 – 公眾號設置 – 功能設置 – 網頁授權域名
- 將類似
MP_verify_2DCaFsV02WRKw123.txt
的文件下載到root路徑下 - 地址欄中填寫
xyabcd.natappfree.cc
(不需要http://)保存即可
擴展:關於前後分離
- 如果api和web項目分別部署,如web是用nginx靜態服務器,api使用PHP/Java完成。就回出現跨域問題,此處可在nginx中再次配置後台api的轉發 location /api/ { proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if (!-f $request_filename) { proxy_pass http://127.0.0.1:8080; break; } }
- web項目中認證請求js如:
http://smalle.natappfree.cc/api/auth?code=021GT83e1ucjUu035F0e1Ttg3e1GT812
就會被轉發到http://127.0.0.1:8080/api/auth?code=021GT83e1ucjUu035F0e1Ttg3e1GT812
var url = "http://smalle.natappfree.cc/api/auth?code=" + code; $.get(url, function(res) { console.log(res); });
- web項目中認證請求js如:
相關文章:服務號使用微信網頁授權(H5應用等)