2019年9月9日 星期一 晴

功能:微信公众号第三方平台做微信授权 问题:微信授权发起的URL1和授权回调的URL2需要同源,授权回调的URL2需能被外网访问,授权回调的URL2需在腾讯第三方平台的配置页面里的URL一致。否则腾讯不给访问。 微信授权的流程比较复杂,我就不在这里讲述的,做过的都知道。

以前:我用Python传统的MVC框架,Python前后端是在一起的,没有这个问题。 现在:前后端分离,前端用VUE框架,后端用Python。前端和后端分别部署在不同的服务器上,用户访问的是前端的地址,可能会导致无法授权的问题。而且前端更多地需要在本地调试。我还好,我习惯在线调试,我发布一个版本不会超过15秒。

查了一些网上资料,也在群里问过人,大概的思路有:

  1. 前端来发起授权页面,前端接收腾讯回调给过来的token,然后传给后端处理。
  2. 通过iframe页面来,全部由后端处理1. Vue前端点击按钮,windows.open弹出后端的窗口,onload时跳转到微信登陆二维码界面
  3. 当用户授权后,后端处理好token后,通过postMessage把消息传递给Vue前端,然后关闭小窗口。(和过去也没啥区别)
  4. 通过Nigix部署识别。

最后,我弄了一个我认为最简单的方案,和腾讯打交道始终是后端,就不需要前端处理了,这样前端还可以在本地调试,大概流程如下(不限于Python,只是提供思路):

  1. Vue前端点击按钮,windows.open弹出后端的窗口 [code]

[/code]

  1. Python后端页面onload时跳转到微信登陆二维码界面 [code] <!doctype html>
微信授权 [/code]
  1. 当用户授权后,后端处理好token后,通过postMessage把消息传递给Vue前端,然后关闭小窗口 [code]

<!doctype html>

微信授权 登陆中... [/code]