Electron开发实战之17-jslogin and superagent

源码 j源码 j-step-c17相关视频

这一节我们来做jslogin

请求参数

通过下面这张图,我们可以得到jslogin的请求参数:
url: 'https://login.wx.qq.com/jslogin'
method: GET
query: { appid, redirect_uri, fun, lang, _ }

jslogin

那么query里面的这些参数哪里来的呢?老套路,我们看源码:

API_jsLogin

先看这句:
API_jsLogin: "https://" + a + "/jslogin?appid=wx782c26e4c19acffb&redirect_uri=" + encodeURIComponent(location.protocol + "//" + location.host + "/cgi-bin/mmwebwx-bin/webwxnewloginpage") + "&fun=new&lang=" + o,

  • 很清楚appid=wx782c26e4c19acffbfun=new这两个是固定值
  • lang=" + o, o又是什么呢?
    在控制台跑一下这段代码,得到ozh-CN
console
  • 等等,这个 _参数是什么鬼,这个参数其实是jquery.ajax方法带过来的,目的是通过在url的查询参数字符串后面附加_=[时间戳]来禁用缓存,有时间你可以看看官方文档,也可以通过单步调试来窥探一下

  • 最后说说redirect_uri,如果我告诉你可以不要它你信吗?别问我为什么,实践是检验真理的唯一标准,你可以试试 :)

superagent

思考一个问题,我们可以从前端直接向微信后台请求数据吗?

fetch

请求不成功,因为这涉及到浏览器的同源策略与跨域问题。

幸运的是我们的Electron集成了node,让我们可以愉快的和微信后台通信

我们来安装一个superagent依赖,负责网络资源请求

yarn add -D superagent

(前面几个章节逼逼叨叨这么多,会不会太啰嗦,大家见谅哈...)


老司机带你飞,下面正式写代码

现在你的项目中应该有个renderer\robot\webwxapi\index.js文件


上一节 Electron开发实战之16-eslint and jest
目录
下一节 Electron开发实战之

推荐阅读更多精彩内容