解决微信OAuth2.0网页授权回调域名只能设置一个的问题% ~) T6 j. j9 r
部署get-weixin-code.html至你的微信授权回调域名的目录下,例如http://wx.abc.com/get-weixin-code.html2 {0 [1 I' q( E' o* S
在其他页面的使用方式如下,类似于直接通过微信回调的方式,只是将回调地址改成了get-weixin-code.html的地址,另外省去了response_type参数(因为它只能为code)以及#wechat_redirect的hash,它们会在get-weixin-code.html里面去加上$ A, a7 K; }; p( F" K
location.href = 'http://wx.abc.com/get-weixin-code.html?appid=XXX&scope=XXX&state=XXX&redirect_uri=' + encodeURIComponent(location.href);: u/ ^' ?1 W4 Q
get-weixin-code.html页面从微信那里拿到code之后会重新跳转回调用的页面,并且在url后面带上code4 J9 [2 E3 ?3 b0 J( o
% [& d4 h: {( v+ q
其他说明# R J+ U# m/ ]9 _5 O4 a
通过多一次的跳转,解决了微信限制回调域名只能设置一个的问题
9 Q4 r; V/ _- z' P牺牲了一点用户体验,换来了项目部署的美感,不需要将各种项目都部署到一个域名下
- K% c$ }, r1 b* {. k) U4 z* O& y% C- O如果你有这样的需求,可以使用本项目/ f/ ?/ x& A0 | b5 I+ b6 b* ^
欢迎提交pull request
2 v, j. s6 I9 p: q, H7 B) ]! \0 l/ e很多朋友问我怎么支持第三方微信平台,这个需要对不同的第三方平台的授权方式有所了解,熟悉他们的授权方式,请求参数等。如果他们是通过在网站入口处的URL上进行授权的,那么可以使用本项目,将入口的URL改成上述的方式,如果他们是在流程中的某些页面去获取授权,那么是没法改变他们的获取地址的,所以本项目就不适用了/ r0 z; ~' d( t0 ]1 u) `, z
- O, ^8 m, c, H; ^8 }* l* Z" F相关资料:
& g1 o* z8 x0 ?
% b ]3 X9 z3 \/ r9 ` B1、https://github.com/HADB/GetWeixi ... et-weixin-code.html+ t4 y- B! A& N \( [* D/ q3 b
2、https://github.com/HADB/GetWeixinCode6 \* m& i" h. R* J
6 q: S+ l; f* ]% @
|