这一节我们来做jslogin
请求参数
通过下面这张图,我们可以得到jslogin
的请求参数:
url: 'https://login.wx.qq.com/jslogin'
method: GET
query: { appid, redirect_uri, fun, lang, _ }
那么query
里面的这些参数哪里来的呢?老套路,我们看源码:
先看这句:
API_jsLogin: "https://" + a + "/jslogin?appid=wx782c26e4c19acffb&redirect_uri=" + encodeURIComponent(location.protocol + "//" + location.host + "/cgi-bin/mmwebwx-bin/webwxnewloginpage") + "&fun=new&lang=" + o,
- 很清楚
appid=wx782c26e4c19acffb
和fun=new
这两个是固定值 -
lang=" + o
, o又是什么呢?
在控制台跑一下这段代码,得到o
是zh-CN
等等,这个
_
参数是什么鬼,这个参数其实是jquery.ajax
方法带过来的,目的是通过在url
的查询参数字符串后面附加_=[时间戳]
来禁用缓存,有时间你可以看看官方文档,也可以通过单步调试来窥探一下最后说说
redirect_uri
,如果我告诉你可以不要它你信吗?别问我为什么,实践是检验真理的唯一标准,你可以试试 :)
superagent
思考一个问题,我们可以从前端直接向微信后台请求数据吗?
请求不成功,因为这涉及到浏览器的同源策略与跨域问题。
幸运的是我们的Electron
集成了node
,让我们可以愉快的和微信后台通信
我们来安装一个superagent
依赖,负责网络资源请求
yarn add -D superagent
(前面几个章节逼逼叨叨这么多,会不会太啰嗦,大家见谅哈...)
老司机带你飞,下面正式写代码
现在你的项目中应该有个renderer\robot\webwxapi\index.js
文件