解决微信OAuth2.0网页授权回调域名只能设置一个的问题; g: k1 ?' G% K0 I: v% _
部署get-weixin-code.html至你的微信授权回调域名的目录下,例如http://wx.abc.com/get-weixin-code.html
7 o u: I* c" c. F在其他页面的使用方式如下,类似于直接通过微信回调的方式,只是将回调地址改成了get-weixin-code.html的地址,另外省去了response_type参数(因为它只能为code)以及#wechat_redirect的hash,它们会在get-weixin-code.html里面去加上
9 M5 H' ]* a* r0 | Wlocation.href = 'http://wx.abc.com/get-weixin-code.html?appid=XXX&scope=XXX&state=XXX&redirect_uri=' + encodeURIComponent(location.href);7 ^) i& ~1 E/ m5 f( F
get-weixin-code.html页面从微信那里拿到code之后会重新跳转回调用的页面,并且在url后面带上code% s5 m5 w2 r4 c' Z0 U- B: a' t* t
+ j7 D9 j% i: o% m* O- {, Y- @1 Y其他说明* Z' g! z! A/ j. P" @
通过多一次的跳转,解决了微信限制回调域名只能设置一个的问题* F% w" p3 V( v, ~& Q( v
牺牲了一点用户体验,换来了项目部署的美感,不需要将各种项目都部署到一个域名下
% k, L O) d7 _! Q; Y: E如果你有这样的需求,可以使用本项目
/ Y* u6 o2 N6 t! r; j欢迎提交pull request, Q% @* `2 |" u; H* R: t" q( _& a
很多朋友问我怎么支持第三方微信平台,这个需要对不同的第三方平台的授权方式有所了解,熟悉他们的授权方式,请求参数等。如果他们是通过在网站入口处的URL上进行授权的,那么可以使用本项目,将入口的URL改成上述的方式,如果他们是在流程中的某些页面去获取授权,那么是没法改变他们的获取地址的,所以本项目就不适用了9 n/ @- ?0 z0 f5 Z. f0 R& U+ t
$ M8 Z1 ~4 c/ {3 ? e$ m
相关资料:
1 t/ w8 |! k F/ p3 w5 t! s3 \
; ]0 T4 X9 A. Z* B# i1、https://github.com/HADB/GetWeixi ... et-weixin-code.html
, B d1 d" W- l8 P, F2 F: H- i4 }2、https://github.com/HADB/GetWeixinCode
" _; W( k. D9 Y8 k7 ^: y9 @8 ^5 A- G' I
|