欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

場(chǎng)景題:掃碼登錄

刷到此貼的友友春招/暑期必上岸!??!

鼠鼠在秋招的過程中多次被問到場(chǎng)景題,中大廠的考察頻率相當(dāng)之高,一般會(huì)放在最后一個(gè)問題用來拖時(shí)間,也遇到過上來就問你怎么設(shè)計(jì)一個(gè)系統(tǒng)(面試官以此來決定后面對(duì)你的態(tài)度)。所以鼠鼠準(zhǔn)備開這個(gè)場(chǎng)景題欄目,分享在秋招過程中遇到的場(chǎng)景題以及如何進(jìn)行回答,感興趣和感覺有幫助的友友點(diǎn)個(gè)關(guān)注和贊吧,你們的點(diǎn)贊和關(guān)注是鼠鼠持續(xù)更新下去的最大動(dòng)力!??!
話不多說開啟今天的主題,掃碼登錄吧?。。?br />
關(guān)于掃碼登錄是現(xiàn)在PC端登錄的常見方式,鼠鼠在面試美團(tuán),騰訊等公司的時(shí)候都遇到過這個(gè)問題,當(dāng)時(shí)面試回答的屬于是七零八落了,不過鼠鼠有及時(shí)復(fù)盤的習(xí)慣,所以針對(duì)場(chǎng)景題,逐漸有了一套自己的方法論,應(yīng)對(duì)不同的面試官可能提出的不同問題。

對(duì)于場(chǎng)景題,鼠鼠覺得拿到一道題,首先要思考的是業(yè)務(wù)邏輯,然后就是在這個(gè)業(yè)務(wù)上會(huì)有多大的qps請(qǐng)求量,面試官經(jīng)常會(huì)對(duì)你設(shè)計(jì)的方案和系統(tǒng)提出高并發(fā)/大流量的情況下會(huì)出現(xiàn)什么問題,你如何去解決,從而考察你設(shè)計(jì)系統(tǒng)的高可用性和系統(tǒng)性。

那么對(duì)于掃碼登錄,其請(qǐng)求量其實(shí)并不算大,所以我們側(cè)重于業(yè)務(wù)流程。

大家都有過掃碼登錄的經(jīng)歷:PC端顯示二維碼,手機(jī)掃描后彈出確認(rèn)登錄頁面,點(diǎn)擊登錄后PC端頁面進(jìn)行跳轉(zhuǎn)。

那么掃碼的過程其實(shí)主要就涉及到手機(jī)端、PC 端、服務(wù)端這三部分。

一、賬號(hào)登錄驗(yàn)證

掃碼登錄相比于傳統(tǒng)的輸入用戶號(hào)密碼登錄,其實(shí)本質(zhì)都是賬號(hào)認(rèn)證的過程,相信大家入門的第一個(gè)項(xiàng)目里一定會(huì)有登錄這個(gè)功能。輸入用戶名和密碼進(jìn)行提交。服務(wù)端接收到用戶名和密碼,進(jìn)行用戶名和密碼的匹配。如果匹配成功,則登錄成功。

這里在Java里常用的是使用cookie或session,不過大家做的項(xiàng)目里可能使用使用jwt多一點(diǎn)(對(duì)沒錯(cuò),就是外賣和點(diǎn)評(píng)),也就是借助token來解決session的一些弊端(這里八股提問,cookie和session還有jwt的區(qū)別和應(yīng)用場(chǎng)景分別是什么),我們這里統(tǒng)一使用token的概念進(jìn)行解釋,服務(wù)端在登錄完成后會(huì)生成一個(gè) TOKEN,與當(dāng)前登錄的用戶進(jìn)行綁定。這個(gè) TOKEN 可以存儲(chǔ)在 REDIS 內(nèi),并設(shè)置在 REDIS 內(nèi)的過期時(shí)間,這也是 TOKEN 的過期時(shí)間。最后將 TOKEN 返回給客戶端。以上就是整個(gè)登錄認(rèn)證的過程。

后續(xù)接口的請(qǐng)求都要帶著這個(gè) TOKEN。服務(wù)端會(huì)驗(yàn)證 TOKEN 的有效性,如果驗(yàn)證通過,則繼續(xù)進(jìn)行服務(wù)端內(nèi)的接口的調(diào)用。如果驗(yàn)證不通過,則返回認(rèn)證失敗,或者說 TOKEN 過期了,客戶端就會(huì)跳轉(zhuǎn)到登錄頁,重新進(jìn)行登錄。

二、掃碼登錄流程

現(xiàn)在換成了掃碼登錄,換湯不換藥,還是需要讓 PC 端獲取到認(rèn)證的 ID。

2.1 二維碼解釋:

掃碼登錄在PC端生成的二維碼,里面不光可以存儲(chǔ)數(shù)字,還可以存儲(chǔ)任何的字符,以二維碼的形式展示出來。手機(jī)掃碼的過程,就是解碼的過程。劃重點(diǎn)??!理解了手機(jī)掃碼是解碼的過程,那這道題就理解了一大半了

PC 端顯示的二維碼,其實(shí)就是PC端向服務(wù)端發(fā)起請(qǐng)求后,服務(wù)端返回的內(nèi)容。那這個(gè)返回內(nèi)容是什么呢?可以看做是一個(gè)唯一請(qǐng)求ID,能夠唯一地代表當(dāng)前的請(qǐng)求,同時(shí)這個(gè)唯一的ID 是有狀態(tài)的,表示這個(gè)當(dāng)前二維碼是未掃描還是掃描成功,PC端根據(jù)服務(wù)端返回的唯一請(qǐng)求ID生成一個(gè)二維碼。

同時(shí)這個(gè)唯一請(qǐng)求ID是有過期時(shí)間的。這個(gè)二維碼過了一段時(shí)間,我們不掃描,網(wǎng)頁會(huì)顯示已失效,請(qǐng)刷新。在設(shè)計(jì)上呢可以將唯一請(qǐng)求ID,作為 KEY 存儲(chǔ)到 REDIS 內(nèi)并設(shè)置一個(gè)失效時(shí)間。

綜上,這個(gè)唯一請(qǐng)求ID最后有三個(gè)狀態(tài),一個(gè)是未掃描,掃描成功還有已失效。已失效就提示它再次進(jìn)行刷新。

2.2 掃碼登錄

接下來到了掃碼登錄環(huán)節(jié)。

2.2.1 手機(jī)掃碼

要進(jìn)行手機(jī)掃碼,前提條件是手機(jī)的 APP 必須是登錄狀態(tài)的,這個(gè)非常重要,也就是手機(jī)端已經(jīng)進(jìn)行了用戶名和密碼的登錄認(rèn)證過程。手機(jī)端一定會(huì)存儲(chǔ)登錄認(rèn)證后的 TOKEN。手機(jī)掃碼識(shí)別 PC 端的二維碼后會(huì)解析出二維碼攜帶的唯一請(qǐng)求ID。也就是PC端向服務(wù)端發(fā)起請(qǐng)求后,服務(wù)端返回的唯一請(qǐng)求ID,手機(jī)會(huì)顯示確認(rèn)登錄的按鈕,按下按鈕,手機(jī)端會(huì)將唯一 請(qǐng)求ID 和手機(jī)認(rèn)證的 TOKEN 一同發(fā)送到服務(wù)端進(jìn)行認(rèn)證。

2.2.2 服務(wù)端驗(yàn)證

最后到了服務(wù)端。
服務(wù)端首先會(huì)驗(yàn)證手機(jī)端的 TOKEN 是否有效,如果有效會(huì)驗(yàn)證唯一請(qǐng)求 ID 的狀態(tài),如果唯一請(qǐng)求ID 不存在了說明就已經(jīng)失效了,Redis過期刪除(八股提問,Rediskey過期后一定會(huì)馬上刪除嗎)。如果唯一請(qǐng)求 ID 存在且當(dāng)前狀態(tài)是未掃碼的,也就是說 REDIS 存在唯一請(qǐng)求 ID的KEY。此時(shí)就會(huì)生成一個(gè) PC 端的 TOKEN,與唯一請(qǐng)求 ID進(jìn)行關(guān)聯(lián),設(shè)置 REDIS 的唯一請(qǐng)求 ID對(duì)應(yīng)的 VALUE 為 PC端登錄 的 TOKEN。此時(shí) PC 的唯一登錄 ID 就產(chǎn)生了,其他情況都是驗(yàn)證失敗。

到這里我們簡(jiǎn)單總結(jié)一下:PC端發(fā)起登錄請(qǐng)求,服務(wù)端返回唯一請(qǐng)求ID,PC端根據(jù)請(qǐng)求ID生成二維碼,處于登錄態(tài)的手機(jī)已獲得手機(jī)端的登錄token,掃碼解析出唯一請(qǐng)求ID后,將唯一請(qǐng)求ID和token一同發(fā)給服務(wù)端,服務(wù)端驗(yàn)證唯一請(qǐng)求ID和token后,生成PC端的登錄唯一ID

2.2.3 PC 端獲得TOKEN

PC 端在生成完這個(gè)二維碼之后會(huì)啟動(dòng)一個(gè)異步請(qǐng)求,向服務(wù)端去查詢唯一 ID 的狀態(tài)。
1)如果是未掃描,REDIS 內(nèi)存在唯一請(qǐng)求ID的 KEY,而且 VALUE 是空的,說明這個(gè)二維碼是有效的。
2)如果服務(wù)端的 REDIS 內(nèi)已經(jīng)沒有唯一請(qǐng)求ID的 KEY 了,那說明就已經(jīng)失效,提示二維碼已經(jīng)失效。
3)如果 REDIS 內(nèi)有唯一請(qǐng)求ID且有對(duì)應(yīng)的 VALUE,則返回掃描成功和關(guān)聯(lián)的 TOKEN,同時(shí) PC 端就會(huì)顯示登錄成功。

補(bǔ)充:PC 端通過什么方式來查詢唯一請(qǐng)求 ID 的狀態(tài)?

1)輪詢,PC 通過輪詢的方式一次次的向服務(wù)端發(fā)送請(qǐng)求查詢二維碼的狀態(tài)。
2)長(zhǎng)輪詢,長(zhǎng)輪詢是指客戶端主動(dòng)給服務(wù)端發(fā)送二維碼狀態(tài)的查詢請(qǐng)求。服務(wù)端接收到請(qǐng)求之后會(huì)按照情況進(jìn)行阻塞直至二維碼的信息狀態(tài)更新或者超時(shí)。當(dāng)客戶端接收到返回的結(jié)果后,若二維碼仍未掃描則會(huì)繼續(xù)發(fā)送查詢的請(qǐng)求,直至狀態(tài)變化。
3)WEB SOCKET ,WEB SOCKET 是指前端或者客戶端在生成二維碼后會(huì)與后端建立連接。一旦后端發(fā)現(xiàn)二維碼狀態(tài)發(fā)生變化,可以直接通過建立主動(dòng)推送二維碼的狀態(tài)給前端。

(這里其實(shí)很容易考到八股文三者的區(qū)別,如果友友們對(duì)這一塊八股不清楚可以不講出來,當(dāng)然可能也有小伙伴在項(xiàng)目里用到了web socket,那么這里就可以和項(xiàng)目做一個(gè)關(guān)聯(lián),把面試官往項(xiàng)目上去引,因?yàn)閳?chǎng)景設(shè)計(jì)題我們是很難在短時(shí)間內(nèi)想得很完善的,但是我們的項(xiàng)目是千錘百煉過的)

總結(jié):

以輪詢的方式來獲取二維碼的狀態(tài)為例。

1)PC 端展示登錄頁面,會(huì)請(qǐng)求服務(wù)端獲取唯一請(qǐng)求 ID,然后服務(wù)端會(huì)生成相應(yīng)的唯一請(qǐng)求ID,并設(shè)置唯一請(qǐng)求 ID 的過期時(shí)間和狀態(tài),返回唯一請(qǐng)求 ID 給 PC 端。

2)PC 端獲取到唯一請(qǐng)求 ID 后生成相應(yīng)的二維碼,PC 端通過輪詢的方式請(qǐng)求服務(wù)端通過唯一請(qǐng)求 ID 獲取二維碼的狀態(tài)。

3)手機(jī)端掃描二維碼獲取唯一請(qǐng)求 ID,將手機(jī)端的 TOKEN 和唯一請(qǐng)求 ID 發(fā)送給服務(wù)端確認(rèn)登錄。

4)服務(wù)端驗(yàn)證手機(jī)端 TOKEN。然后根據(jù)手機(jī)端 TOKEN 和唯一請(qǐng)求 ID 生成 PC 端的 TOKEN。此時(shí) PC 端通過輪循的方式請(qǐng)求服務(wù)端,就會(huì)獲得到這個(gè)唯一請(qǐng)求 ID 對(duì)應(yīng)的二維碼的狀態(tài)。如果是成功了,服務(wù)端就會(huì)返回 PC 端的 TOKEN,顯示登錄成功。

PS:
總結(jié)部分可以當(dāng)做這個(gè)場(chǎng)景題的精簡(jiǎn)回答,上面的部分是幫助友友們理解,畢竟八股文如果死記硬背不理解的話稍微變化一下就不會(huì)了。

其實(shí)在整個(gè)分析過程中大家可以發(fā)現(xiàn),場(chǎng)景題其實(shí)就會(huì)把我們背的那些八股和技術(shù)運(yùn)用起來,所以在學(xué)習(xí)場(chǎng)景題的時(shí)候就可以把八股文進(jìn)行問題,有點(diǎn)像單詞背不住就去讀閱讀文章,在讀文章的時(shí)候記住八股文,在上面的分析過程中我也有幾處進(jìn)行了隨機(jī)的八股提問。掃碼登錄這個(gè)過程里Redis用的很多,那友友們是不是可以順帶復(fù)習(xí)一下Redis的相關(guān)八股呢?
(1)緩存三劍客是什么?有什么處理方式?
(2)Redis緩存刪除和內(nèi)存淘汰策略
(3)Redis持久化策略?AOF重寫是什么?
……

以上都是鼠鼠在面試中只要遇到Redis就一定會(huì)被問到的,不一定是全部問到,但至少都是三選一了…

好了如果大家有什么問題的話歡迎來評(píng)論區(qū)交流。包括但不限于文章創(chuàng)作改正意見,后續(xù)分享內(nèi)容(面經(jīng),知識(shí)輸出,經(jīng)驗(yàn)分享等等),都看到這了,點(diǎn)個(gè)免費(fèi)的關(guān)注和贊不過分吧
#大家都開始春招面試了嗎##我發(fā)現(xiàn)了面試通關(guān)密碼##暑期實(shí)習(xí)   ##春招##場(chǎng)景題##八股#
全部評(píng)論

相關(guān)推薦

05-06 10:04
運(yùn)營(yíng)
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
29
104
分享

創(chuàng)作者周榜

更多
正在熱議
更多
# 面試問題記錄 #
59936次瀏覽 872人參與
# 硬件人的簡(jiǎn)歷怎么寫 #
254174次瀏覽 2884人參與
# 京東TGT #
47267次瀏覽 174人參與
# 你遇到過哪些神仙同事 #
71553次瀏覽 641人參與
# 我的2024小目標(biāo) #
57927次瀏覽 390人參與
# 工作中,你有沒有遇到非常愛罵人的領(lǐng)導(dǎo)? #
16859次瀏覽 126人參與
# 百度工作體驗(yàn) #
204618次瀏覽 1907人參與
# 實(shí)習(xí)生應(yīng)該準(zhǔn)時(shí)下班嗎 #
201422次瀏覽 1314人參與
# 上班到公司第一件事做什么? #
37696次瀏覽 347人參與
# 國企和大廠硬件兄弟怎么選? #
119960次瀏覽 1656人參與
# 工作一周年分享 #
18964次瀏覽 111人參與
# 沒有合適的工作,你會(huì)先找個(gè)干著,還是考公考研 #
104220次瀏覽 1075人參與
# 面試吐槽bot #
13878次瀏覽 87人參與
# 互聯(lián)網(wǎng)行業(yè)現(xiàn)在還值得去嗎 #
6230次瀏覽 42人參與
# 面試經(jīng)驗(yàn)談 #
38577次瀏覽 505人參與
# 拼多多工作體驗(yàn) #
16564次瀏覽 152人參與
# 入職第五天,你被拉進(jìn)了幾個(gè)工作群 #
17724次瀏覽 80人參與
# 假如我穿越到了媽媽的18歲 #
6041次瀏覽 43人參與
# 國企vs私企,你更想去? #
217299次瀏覽 2071人參與
# 你們的畢業(yè)論文什么進(jìn)度了 #
999125次瀏覽 9398人參與
# 機(jī)械人,你的第一份感謝信是誰給的 #
26607次瀏覽 296人參與
牛客網(wǎng)
??推髽I(yè)服務(wù)