解决微信OAuth2.0网页授权回调域名只能设置一个的问题! E: S# c' h( _2 @ H8 J5 ~
部署get-weixin-code.html至你的微信授权回调域名的目录下,例如http://wx.abc.com/get-weixin-code.html5 Y5 o) h8 O* D, K( `
在其他页面的使用方式如下,类似于直接通过微信回调的方式,只是将回调地址改成了get-weixin-code.html的地址,另外省去了response_type参数(因为它只能为code)以及#wechat_redirect的hash,它们会在get-weixin-code.html里面去加上# i& X1 |0 k8 j7 g
location.href = 'http://wx.abc.com/get-weixin-code.html?appid=XXX&scope=XXX&state=XXX&redirect_uri=' + encodeURIComponent(location.href);
8 a2 T0 a1 B$ e' C+ p$ l( iget-weixin-code.html页面从微信那里拿到code之后会重新跳转回调用的页面,并且在url后面带上code
1 ?8 `% C9 E' S$ r }& P3 ^; }/ d% U, U$ M& c, E" b
其他说明) I' _' t0 L9 t
通过多一次的跳转,解决了微信限制回调域名只能设置一个的问题) {) {, V& W3 d* G! K0 G
牺牲了一点用户体验,换来了项目部署的美感,不需要将各种项目都部署到一个域名下# B+ }% w2 W) V) I/ @. ?% }" r
如果你有这样的需求,可以使用本项目
' u' {4 h* H2 h, j) K2 Q- M' k- F欢迎提交pull request: r, B3 {2 ]3 V
很多朋友问我怎么支持第三方微信平台,这个需要对不同的第三方平台的授权方式有所了解,熟悉他们的授权方式,请求参数等。如果他们是通过在网站入口处的URL上进行授权的,那么可以使用本项目,将入口的URL改成上述的方式,如果他们是在流程中的某些页面去获取授权,那么是没法改变他们的获取地址的,所以本项目就不适用了
3 p, w8 n$ S V8 N5 Z s7 F2 K5 L! U8 ~& T+ J# A: ~- o! ~
相关资料:1 l4 {$ y K+ O3 A7 @! M0 H
; D, d: d( _3 d5 Z7 c% d% k
1、https://github.com/HADB/GetWeixi ... et-weixin-code.html! T# v- G2 d$ j
2、https://github.com/HADB/GetWeixinCode
1 ~6 P, `. q1 Y$ e9 w7 M+ M8 j7 c1 b! E3 q: p4 E! t/ M
|