日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > C語(yǔ)言與CPP編程
[導(dǎo)讀]事情經(jīng)過(guò) 這天中午,小A吃完午飯,攤在自己的躺椅上,想趁吃飽喝足的午后時(shí)間靜靜享受獨(dú)自的靜謐。 干點(diǎn)什么好呢?小A單手操作鼠標(biāo)打開(kāi)了一個(gè)陌生而隱秘的網(wǎng)站。正開(kāi)著某個(gè)視頻起勁,突然瀏覽器彈出了一個(gè)對(duì)話框: 請(qǐng)使用微信掃碼登錄賬號(hào),繼續(xù)觀看 這... 但



事情經(jīng)過(guò)

這天中午,小A吃完午飯,攤在自己的躺椅上,想趁吃飽喝足的午后時(shí)間靜靜享受獨(dú)自的靜謐。


干點(diǎn)什么好呢?小A單手操作鼠標(biāo)打開(kāi)了一個(gè)陌生而隱秘的網(wǎng)站。正開(kāi)著某個(gè)視頻起勁,突然瀏覽器彈出了一個(gè)對(duì)話框:


請(qǐng)使用微信掃碼登錄賬號(hào),繼續(xù)觀看


這...



但是由于強(qiáng)烈的好奇驅(qū)使,迫于無(wú)奈,小A只好選擇登錄再繼續(xù)觀看。只見(jiàn)他熟練的掏出手機(jī),打開(kāi)微信掃一掃對(duì)準(zhǔn)上面的二維碼,只聽(tīng)見(jiàn) “?!?的一聲,網(wǎng)頁(yè)上的二維碼放佛活過(guò)來(lái)了,直接刷新出了小A的微信頭像,同時(shí)手機(jī)上也彈出登錄的提醒。


小A心中略微驚嘆,但沒(méi)來(lái)得及多想。忙點(diǎn)擊手機(jī)界面中登錄按鈕。此時(shí)網(wǎng)頁(yè)刷新,恢復(fù)了正常,表示可以繼續(xù)觀看。


上網(wǎng)沖浪的時(shí)間總是過(guò)得很快,小A很快就有些疲倦。他閉上眼睛,腦海中卻浮現(xiàn)出了剛剛微信掃描二維碼,然后登錄網(wǎng)頁(yè)的場(chǎng)景,心中再次驚嘆,并開(kāi)始思考起其中的原理來(lái)。


原理解析

微信掃碼登錄現(xiàn)在在日常生活中已經(jīng)是常見(jiàn)不能再常見(jiàn)的場(chǎng)景之一了,但是要知道微信首次公開(kāi)這項(xiàng)功能時(shí),卻是驚艷眾人。移動(dòng)端與PC端以這樣一種巧妙的方式鏈接在了一起,的確是讓人驚嘆。


小A想起來(lái)之前聽(tīng)過(guò)的前后端的概念,知道賬戶的數(shù)據(jù)信息一般都是放在服務(wù)器上,前端負(fù)責(zé)向后端 “討要數(shù)據(jù)” 并顯示,后端則是對(duì)前端的 “討要” 做出反應(yīng)。這樣一來(lái),小A猜測(cè)微信登錄的過(guò)程可能就是:


  1. 網(wǎng)頁(yè)前端向微信后臺(tái)請(qǐng)求賬號(hào)數(shù)據(jù)

  2. 微信后臺(tái)接受網(wǎng)頁(yè)前端的請(qǐng)求,然后將他的賬號(hào)數(shù)據(jù)返回

  3. 網(wǎng)頁(yè)前端接收到了數(shù)據(jù)后,在瀏覽器里進(jìn)行顯示


還手腳麻利的畫(huà)了個(gè)示意圖:



當(dāng)小A正準(zhǔn)備沾沾自喜的時(shí)候,突然看到桌面上的手機(jī)。咦,如果就只是這么個(gè)過(guò)程,那手機(jī)的作用是啥。他才開(kāi)始意識(shí)到,問(wèn)題沒(méi)這么簡(jiǎn)單。


于是,他決定重新探秘微信掃碼登錄的過(guò)程。


過(guò)程分析


小A打開(kāi)了一個(gè)十分簡(jiǎn)潔的網(wǎng)站,說(shuō)是微信的網(wǎng)頁(yè)版,可以微信直接掃碼登錄。


https://wx.qq.com/


小A看著網(wǎng)頁(yè)中碩大的二維碼陷入了沉思,他在想這個(gè)二維碼跟他的身份有沒(méi)有關(guān)系呢。如果沒(méi)有,那它又是怎么生成的呢。


思考間,小A打開(kāi)了瀏覽器的開(kāi)發(fā)者工具。在網(wǎng)絡(luò)監(jiān)控一覽找到了這幅二維碼,與之對(duì)應(yīng)的鏈接是


https://login.weixin.qq.com/qrcode/4fhrH4fhTQ==


然后習(xí)慣性地,小A嘗試多次刷新頁(yè)面,發(fā)現(xiàn)二維碼不斷發(fā)生變化,鏈接也不斷更改。


https://login.weixin.qq.com/qrcode/YdDa9LAqpA==

https://login.weixin.qq.com/qrcode/ofw5oAsMVg==

https://login.weixin.qq.com/qrcode/gaNS_fxO_w==


他似乎發(fā)現(xiàn)了些東西。二維碼不斷變化,其對(duì)應(yīng)的鏈接尾的代碼也相應(yīng)變化,并且是隨機(jī)性的變化。


這也就是說(shuō),每一次頁(yè)面刷新都會(huì)隨機(jī)且唯一地生成一個(gè)二維碼。這或許可以與手機(jī)登錄的過(guò)程聯(lián)系起來(lái)。


小A似乎開(kāi)始明白了,他隨即再次拿起手機(jī),熟練的使用微信掃描了此時(shí)的二維碼。


“?!?的一聲,網(wǎng)頁(yè)上的二維碼頓時(shí)變成了小A帥氣的微信頭像。這個(gè)時(shí)候,小A才突然意識(shí)到,是掃碼之后網(wǎng)頁(yè)才與他的微信賬號(hào)建立起了聯(lián)系。


沒(méi)有掃碼之前,頁(yè)面上的二維碼只是隨機(jī)生成的且與用戶無(wú)關(guān)的碼;而當(dāng)用戶掃碼之后,二維碼便與用戶帳號(hào)綁定在了一起。


原來(lái)手機(jī)掃碼的用處是這樣!


小A此時(shí)注意到,手機(jī)微信上彈出了『微信登錄確認(rèn)』的提醒。小A這個(gè)時(shí)候謹(jǐn)慎地點(diǎn)擊了下方的登錄按鈕。


隨著平滑的動(dòng)畫(huà)一閃而過(guò),網(wǎng)頁(yè)上已經(jīng)顯示出了小A的賬號(hào)信息,顯然小A的微信賬號(hào)已經(jīng)登錄。再一次體驗(yàn)這個(gè)過(guò)程,小A心中開(kāi)始思索手機(jī)微信在登錄過(guò)程中所起到的具體作用。


首先需要明白幾個(gè)過(guò)程:


  1. 進(jìn)入網(wǎng)頁(yè)登陸界面,隨機(jī)生成一個(gè)二維碼;

  2. 小A通過(guò)手機(jī)掃描二維碼,將微信賬號(hào)與二維碼綁定;

  3. 小A在手機(jī)微信點(diǎn)擊登錄按鈕,授權(quán)網(wǎng)頁(yè)登錄微信賬號(hào);

  4. 網(wǎng)頁(yè)獲得小A的賬號(hào)信息,將數(shù)據(jù)顯示。


原理解釋

小A望著上述過(guò)程,結(jié)合最開(kāi)始的原理猜測(cè),開(kāi)始思索整個(gè)環(huán)節(jié)哪里出了差錯(cuò)。


網(wǎng)頁(yè)的二維碼到底從何而來(lái)?

是誰(shuí)向微信后臺(tái)請(qǐng)求了賬號(hào)數(shù)據(jù)?


突然,他意識(shí)到,不同的網(wǎng)站可能都需要通過(guò)微信后臺(tái)進(jìn)行數(shù)據(jù)的獲取,那么每一個(gè)網(wǎng)站必然也存在它的后臺(tái)來(lái)給微信后臺(tái)發(fā)送請(qǐng)求。


這樣一來(lái),整個(gè)過(guò)程就能解釋得通了!


  1. 網(wǎng)站頁(yè)面刷新,網(wǎng)頁(yè)后臺(tái)向微信后臺(tái)請(qǐng)求授權(quán)登錄;

  2. 微信后臺(tái)返回登錄所需二維碼;

  3. 用戶通過(guò)手機(jī)掃描二維碼,并在手機(jī)上授權(quán)登錄后,微信后臺(tái)告知網(wǎng)頁(yè)后臺(tái)已授權(quán);

  4. 網(wǎng)頁(yè)后臺(tái)向微信后臺(tái)請(qǐng)求微信賬號(hào)數(shù)據(jù);

  5. 微信后臺(tái)返回賬號(hào)數(shù)據(jù);

  6. 網(wǎng)頁(yè)后臺(tái)接收數(shù)據(jù)并通過(guò)瀏覽器顯示;


技術(shù)剖析

小A在想清楚了整個(gè)過(guò)程后,決定對(duì)整個(gè)過(guò)程的技術(shù)實(shí)現(xiàn)進(jìn)行進(jìn)一步的探究。他打開(kāi)了微信開(kāi)發(fā)官方文檔,找到了第三方網(wǎng)站應(yīng)用微信登錄開(kāi)發(fā)指南:


https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html


他將整個(gè)過(guò)程梳理了一遍,畫(huà)出了這個(gè)圖:




技術(shù)實(shí)現(xiàn)如下:


一、二維碼的獲得

  1. 用戶打開(kāi)網(wǎng)站后,網(wǎng)站后臺(tái)根據(jù)微信OAuth2.0協(xié)議向微信開(kāi)發(fā)平臺(tái)請(qǐng)求授權(quán)登錄,并傳遞事先在微信開(kāi)發(fā)平臺(tái)中審核通過(guò)的AppIDAppSecrect等參數(shù);

  2. 微信開(kāi)發(fā)平臺(tái)對(duì)AppID等參數(shù)進(jìn)行驗(yàn)證,并向網(wǎng)站后臺(tái)返回二維碼;

  3. 網(wǎng)站后臺(tái)將二維碼傳送至網(wǎng)站前端進(jìn)行顯示;


二、微信客戶端授權(quán)登錄

  1. 用戶使用微信客戶端掃描二維碼并授權(quán)登錄;

  2. 微信客戶端將二維碼特定的uid與微信賬號(hào)綁定,傳送至微信開(kāi)發(fā)平臺(tái);

  3. 微信開(kāi)發(fā)平臺(tái)驗(yàn)證綁定數(shù)據(jù),調(diào)用網(wǎng)站后臺(tái)的回調(diào)接口,發(fā)送授權(quán)臨時(shí)票據(jù)code;


三、網(wǎng)站后臺(tái)請(qǐng)求數(shù)據(jù)

  1. 網(wǎng)站后臺(tái)接收到code,表明微信開(kāi)發(fā)平臺(tái)同意數(shù)據(jù)請(qǐng)求;

  2. 網(wǎng)站后臺(tái)根據(jù)code參數(shù),再加上AppIDAppSecret請(qǐng)求微信開(kāi)發(fā)平臺(tái)換取access_token

  3. 微信開(kāi)發(fā)平臺(tái)驗(yàn)證參數(shù),并返回access_token;

  4. 網(wǎng)站后臺(tái)收到access_token后即可進(jìn)行參數(shù)分析獲得用戶賬號(hào)數(shù)據(jù)。


在上述過(guò)程中,有幾個(gè)參數(shù)值得解釋一下:(來(lái)源官方文檔)


AppID:應(yīng)用唯一標(biāo)識(shí),在微信開(kāi)放平臺(tái)提交應(yīng)用審核通過(guò)后獲得

AppSecret:應(yīng)用密鑰,在微信開(kāi)放平臺(tái)提交應(yīng)用審核通過(guò)后獲得

code:授權(quán)臨時(shí)票據(jù),第三方通過(guò)code進(jìn)行獲取access_token的時(shí)候需要用到,code的超時(shí)時(shí)間為10分鐘,一個(gè)code只能成功換取一次access_token即失效。code的臨時(shí)性和一次性保障了微信授權(quán)登錄的安全性。


整個(gè)過(guò)程從網(wǎng)站后臺(tái)向微信開(kāi)發(fā)平臺(tái)請(qǐng)求授權(quán)登錄開(kāi)始,最終目的是為了獲得access_token。


access_token:用戶授權(quán)第三方應(yīng)用發(fā)起接口調(diào)用的憑證


在獲得了access_token后就可以解析用戶的一些基本信息,包括頭像、用戶名、性別、城市等。這樣一來(lái),整個(gè)微信掃描登錄的過(guò)程就完成了。


研究到這,小A終于大體上對(duì)微信掃碼登錄的整個(gè)過(guò)程有了清晰的認(rèn)知。看起來(lái)似乎也不難,開(kāi)發(fā)者只需要在網(wǎng)頁(yè)后端做好對(duì)微信公眾平臺(tái)的接口調(diào)用即可實(shí)現(xiàn)掃碼登錄。


伸了伸懶腰,小A又想到在整個(gè)過(guò)程中還需要考慮超時(shí)的問(wèn)題。比如二維碼超時(shí)未掃描、二維碼掃描后超時(shí)授權(quán)、獲得access_token后超時(shí)等等問(wèn)題。


揉了揉太陽(yáng)穴,小A發(fā)現(xiàn)一個(gè)簡(jiǎn)單的功能實(shí)現(xiàn)起來(lái)還是需要考慮許多細(xì)節(jié),真的是紙上得來(lái)終覺(jué)淺呀。小A下定決心,下次得少上網(wǎng)沖浪了,花點(diǎn)時(shí)間搭個(gè)服務(wù)器先把微信掃碼登錄過(guò)程實(shí)現(xiàn)看看。


不過(guò),還得先去在微信開(kāi)放平臺(tái)注冊(cè)開(kāi)發(fā)者帳號(hào),并擁有一個(gè)已審核通過(guò)的網(wǎng)站應(yīng)用,并獲得相應(yīng)的AppIDAppSecret才行。


想了想,還是先睡覺(jué)吧。


帥氣的你“在看”我嗎?

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉