解决方法是这样的,前端用户点击我要用微信登陆按钮->此时请求应用 API 接口,咱们叫他小张把,小张作啥呢?就是给你生成跳转收到微信的 URL,而后,前端拿到 url 后 location.href=xxxx 进行跳转,而后微信跳转回来后不是带了 code 么?你如今应该卡在 code 这儿了吧,该怎么作呢?记得生成小张这个接口么?前端请求小张的时候啊,小张须要让你带上一个叫作 redirect_uri 或者其余名字的参数,这个参数就是微信跳转回来跳转的接口,而后,你的页面就拿到了 code 了,这个时候,让写接口的哥们儿给你写一个叫作小王的接口,小王作什么呢?小王就等你拿 code,他去根据 code 获取大家这边的用户信息,若是没有,他能够无私地自动建立一个,也能够告诉你用户没有在系统中注册,你手动告诉用户进行注册或者绑定大家的帐号,完了
好了,说下小张这个接口,这个接入咱们可让他变得更牛逼点,作啥呢?小张接收咱们应用的 redirect_uri,而后小张生成跳转微信的 uri 的时候优雅一点,假设咱们应用的 hostname 是 baidusb.cn ,前端想要收到 code 的 url 是 baidusb.com/wechat/code,以前说的是让微信直接跳转 baidusb.com/wechat/code,如今不这样作了,让咱们应用来跳转,好比咱们的应用也就是服务端的小伙伴写了一个固定的接口叫作 api.baidusb.com/wechat/code/callback,微信先跳这个 URL,而后这里作 code 和 state 校验,完事儿了以后再跳到 baidusb.com/wechat/code 这儿来,baidusb.com/wechat/code,这样不少个子应用均可以用啦,固然,这只是其中一种比较好的办法前端