第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Electron開發(fā)實(shí)戰(zhàn)之14-webwxapi-02

標(biāo)簽:
Node.js JavaScript Vue.js
分析 微信网页版 扫码登录
一、来源于index.html的三个js文件
  1. aq_common.js: 与网络安全方面相关
  2. vendor_7ee9f11.js: 第三方依赖和库
  3. index_f5ac071.js: 重点!业务逻辑在这里面

来源于index.html的三个js文件

index.html

index.html

二、jslogin: 请求二维码

jsloginResponse Headers 中的 Content-Typetext/javascript
Response
所以在拿到 Response 返回值后,全局变量window.QRLogin的属性uuid被赋值,而这个uuid就是二维码图片的地址
jslogin
从函数栈中可以看到:首先r方法调用getUUID,再由getUUID方法向微信服务器发送 ajax请求,请求的url为"jslogin?appid=...",拿到uuid
jslogin
我们看看源码,r方法做了什么?
function
大致是r先调用t.getUUID方法返回一个Promise, then调用t.checkLogin方法,
t.checkLogin也返回一个PromisecheckLogin成功后调用o, o在下面会讲到,
现在看看 checkLogin
从函数栈中可以看到:checkLogin方法向微信服务器发送 ajax请求,请求的url为"login?loginicon=..."
login

getUUID

三、login: 检查 code 状态

login

四、login: 循环

下图黄色区域中我们看到,资源列表显示浏览器每间隔25秒左右就请求一次 login
login
为什么会这样? 我们分析一下 function o

五、o函数: 递归调用

函数o会检查参数ccode属性。

index_f5ac071.js

分析下 case 408:
当 code === 408 时,调用t.checkLogin方法,后面跟了一个then表示checkLogin是一个Promisethen方法有两个参数,第一个参数是当Promise变成接受状态时调用函数o,而 o正是function o自身,由此我们得知,这是一个递归调用,所以会出现上图中循环请求login的情况;
200201等等其它情况请大家自行参看源码。

六、总结 Login 流程

对于loginResponse返回值我们考虑下面几种情况就差不多了:

  • 当我们不做任何操作时,系统循环请求login
    window.code=408;
  • 当我们通过手机扫码后
    window.code=201;
    (当前用户有头像时返回值后面还会有 userAvatar = 'data:img/jpg;base64...';)
  • 当我们在手机上确认登录后
    window.code=200; window.redirect_uri="https://wx2.qq.com/...";
  • 当返回值为其它值时,我们刷新系统重新开始

伪代码

  • login.js

const login = {
  start () {
    // 终止外循环 code === 200
    // 内循环条件 code === 408 201
    const code = ''

    while (true) {
      if (code === '200') {
        // 终止外循环
        break
      }

      const uuid = jslogin()
      code = login(uuid, 1)

      while (true) {
        if (code !== '201' && code !== '408') {
          // 终止内循环
          break
        }

        code = login(uuid, 0)
      }
    }
  }
}

Login流程图

登录流程

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消