<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          實(shí)現(xiàn)用戶一鍵登錄的方案有哪些?

          共 2758字,需瀏覽 6分鐘

           ·

          2021-03-01 12:59



          點(diǎn)擊領(lǐng)取:程序員最新學(xué)習(xí)資料!

          來(lái)源:juejin.im/post/5d197adff265da1bb31c4fa9


          我們先來(lái)看一下目前的一些登錄方式:

          賬號(hào)、密碼登陸

          使用賬號(hào)加密碼是最傳統(tǒng)的登錄方式,可以說(shuō)是簡(jiǎn)單粗暴的,一般也不會(huì)出現(xiàn)什么問(wèn)題。

          缺點(diǎn)

          但這種方式要求用戶要記住自己的賬號(hào)和密碼,也就是有一個(gè)記憶成本。用戶為了降低記憶成本,很可能會(huì)在不同平臺(tái)使用同一套賬號(hào)密碼。從安全角度考慮,一旦某個(gè)平臺(tái)的賬號(hào)密碼泄露了,會(huì)連累到該用戶使用的其他平臺(tái)。

          另外,由于賬號(hào)和個(gè)人身份無(wú)關(guān),意味著同一個(gè)用戶可以注冊(cè)多個(gè)不同的賬號(hào),也就是可能會(huì)有惡意注冊(cè)的情況發(fā)生。

          為解決這兩個(gè)問(wèn)題,理想的情況就是使用一個(gè)和用戶身份強(qiáng)關(guān)聯(lián)的東西來(lái)作為賬號(hào)。但用什么呢?總不能拿身份證做賬號(hào)吧。

          這個(gè)問(wèn)題一直沒(méi)有一個(gè)好的回答,直到手機(jī)卡強(qiáng)制實(shí)名制。

          手機(jī)號(hào)、驗(yàn)證碼登陸

          從手機(jī)卡實(shí)名制開(kāi)始,手機(jī)號(hào)已經(jīng)成為我們的另一個(gè)身份證明。

          使用手機(jī)號(hào)加驗(yàn)證碼的登錄方式目前已經(jīng)成為主流,和輸入賬號(hào)密碼相比,它可以更好的驗(yàn)證用戶身份,可以防止惡意注冊(cè),用戶不用再去記自己的賬號(hào)密碼,增加了安全性。現(xiàn)在用戶也習(xí)慣并接受了這種登錄方式。

          現(xiàn)在很多產(chǎn)品還把登錄和注冊(cè)的流程進(jìn)行了結(jié)合,如果登錄時(shí)服務(wù)器發(fā)現(xiàn)手機(jī)號(hào)還未注冊(cè),會(huì)直接用這個(gè)手機(jī)號(hào)注冊(cè)好再進(jìn)行登錄,注冊(cè)過(guò)程對(duì)用戶是無(wú)感的,極大簡(jiǎn)化了注冊(cè)流程。

          缺點(diǎn)

          這種登錄方式需要進(jìn)行一系列的操作:輸入手機(jī)號(hào)、等待驗(yàn)證碼短信、輸入驗(yàn)證碼、點(diǎn)擊登錄。這整個(gè)流程走完可能需要 20 秒以上,操作也比較繁瑣。并且它是依賴短信網(wǎng)絡(luò)的,因?yàn)槿绻詹坏蕉绦牛簿偷卿洸涣肆恕_@些問(wèn)題可能造成一部分用戶在注冊(cè)階段就流失了。

          從安全角度考慮,還存在驗(yàn)證碼泄漏的風(fēng)險(xiǎn)。如果有人知道了你的手機(jī)號(hào),并且竊取到了驗(yàn)證碼,那他也能登錄你的賬號(hào)了。

          但回過(guò)頭來(lái)想一下,為什么我們需要驗(yàn)證碼?驗(yàn)證碼的作用就是確定這個(gè)手機(jī)號(hào)是你的,那除了使用短信,是否還有別的方式對(duì)手機(jī)號(hào)進(jìn)行認(rèn)證?

          本機(jī)號(hào)碼認(rèn)證

          如果能獲取到當(dāng)前使用的手機(jī)號(hào),就能對(duì)用戶輸入的號(hào)碼進(jìn)行驗(yàn)證了。但出于安全考慮,客戶端是無(wú)法直接獲取到手機(jī)號(hào)的,運(yùn)營(yíng)商則可以通過(guò) sim 卡數(shù)據(jù)查詢到。

          現(xiàn)在運(yùn)營(yíng)商已經(jīng)開(kāi)放了相關(guān)的能力,現(xiàn)在我們可以在用戶輸入手機(jī)號(hào)后,通過(guò)調(diào)用運(yùn)營(yíng)商的接口,判斷用戶輸入的手機(jī)號(hào)是否和本地號(hào)碼一致。這樣一來(lái),用戶就省去了等待驗(yàn)證碼短信、輸入驗(yàn)證碼的過(guò)程,也不受短信網(wǎng)絡(luò)的限制,簡(jiǎn)化了登錄流程。

          但再進(jìn)一步想,如果運(yùn)營(yíng)商可以把當(dāng)前的號(hào)碼直接返回給我們,而不只是用于驗(yàn)證,那用戶連手機(jī)號(hào)都不需要填了。

          于是,就有了今天的主角一鍵登錄。

          一鍵登錄

          獲取到當(dāng)前手機(jī)使用的手機(jī)卡號(hào),直接使用這個(gè)號(hào)碼進(jìn)行登錄,這就是一鍵登錄。

          這種登錄方式的好處是顯而易見(jiàn)的。它可以更方便、快捷地完成注冊(cè)、登錄流程,將原本可能需要 20 秒的流程,縮短到了 2 秒左右,很大程度上降低了登錄環(huán)節(jié)的用戶流失。

          一鍵登錄能不能做,取決于運(yùn)營(yíng)商是否開(kāi)放相關(guān)服務(wù),這也是為什么過(guò)去沒(méi)有一鍵登錄,直到最近三大運(yùn)營(yíng)商都有了自己的開(kāi)放平臺(tái):

          • 移動(dòng) - 互聯(lián)網(wǎng)能力開(kāi)放平臺(tái)
          • 電信 - 天翼賬號(hào)開(kāi)放平臺(tái)
          • 聯(lián)通 - WO+ 開(kāi)放平臺(tái)

          要使用一鍵登錄,需要接入運(yùn)營(yíng)商的 SDK,三大運(yùn)營(yíng)商使用了同一套授權(quán)流程:

          主要步驟如下:

          1. SDK 初始化

          調(diào)用 SDK 的初始化方法,傳入項(xiàng)目在平臺(tái)上的 AppKey 和 AppSecret。

          1. 喚起授權(quán)頁(yè)

          調(diào)用 SDK 喚起授權(quán)接口。SDK 會(huì)先向運(yùn)營(yíng)商發(fā)起獲取手機(jī)號(hào)掩碼的請(qǐng)求,請(qǐng)求成功后跳轉(zhuǎn)到授權(quán)頁(yè)。授權(quán)頁(yè)會(huì)顯示手機(jī)號(hào)掩碼以及運(yùn)營(yíng)商協(xié)議給用戶確認(rèn)。

          1. 同意授權(quán)并登錄

          用戶同意相關(guān)協(xié)議,點(diǎn)擊授權(quán)頁(yè)面的登錄按鈕,SDK 會(huì)請(qǐng)求本次取號(hào)的 token,請(qǐng)求成功后將 token 返回給客戶端。

          1. 取號(hào)

          將獲取到的 token 發(fā)送到我們自己的服務(wù)器,由服務(wù)器攜帶 token 調(diào)用運(yùn)營(yíng)商一鍵登錄的接口,調(diào)用成功就返回手機(jī)號(hào)碼了。服務(wù)器用手機(jī)號(hào)進(jìn)行登錄或注冊(cè)操作,返回操作結(jié)果給客戶端,完成一鍵登錄。

          這里需要把授權(quán)頁(yè)拎出來(lái)講一下,它一般長(zhǎng)這樣:

          授權(quán)頁(yè)是 SDK 里定義的頁(yè)面,以安卓為例,接入 SDK 后我們需要在 AndroidManifest 里注冊(cè)好這個(gè)頁(yè)面。我們不能也不應(yīng)該跳過(guò)授權(quán)頁(yè)面,未經(jīng)用戶允許就獲取用戶手機(jī)號(hào)。

          由于授權(quán)頁(yè)是第三方的頁(yè)面,我們無(wú)法自由修改頁(yè)面樣式,但 SDK 里提供了足夠豐富的接口給我們自定義樣式。

          前面說(shuō)到,在授權(quán)頁(yè)顯示之前需要先請(qǐng)求到手機(jī)號(hào)掩碼,用于在授權(quán)頁(yè)展示。為了增加授權(quán)頁(yè)的跳轉(zhuǎn)速度,減少用戶等待的時(shí)間,通常 SDK 會(huì)提供一個(gè)預(yù)取號(hào)的接口給我們,這個(gè)接口取的就是手機(jī)號(hào)掩碼。我們可以在打開(kāi) APP 的時(shí)候就調(diào)用這個(gè)接口,在已經(jīng)取得掩碼的情況下,用戶點(diǎn)擊跳轉(zhuǎn)授權(quán)頁(yè)面就不需要再等待了。算是對(duì)用戶體驗(yàn)的一個(gè)小優(yōu)化。

          在認(rèn)證過(guò)程中,會(huì)把網(wǎng)絡(luò)切換為移動(dòng)蜂窩網(wǎng)絡(luò),目前支持的制式有中國(guó)移動(dòng) 2G/3G/4G、中國(guó)聯(lián)通 3G/4G、中國(guó)電信 4G。當(dāng)然最好是使用 4G,使用 2G、3G 會(huì)降低認(rèn)證的成功率。

          在沒(méi)有插電話卡,或者關(guān)閉移動(dòng)蜂窩網(wǎng)絡(luò)的情況下,是無(wú)法完成認(rèn)證的。所以就算接入了一鍵登錄,我們也要兼容傳統(tǒng)的登錄方式,允許用戶在認(rèn)證失敗的情況下,手動(dòng)輸入手機(jī)號(hào)登錄。

          三家運(yùn)營(yíng)商都擁有自己的 SDK,但各自的 SDK 不一定支持別家的認(rèn)證。這導(dǎo)致目前許多接入了一鍵登錄的產(chǎn)品,只支持某一個(gè)運(yùn)營(yíng)商。

          如果要兼容三大運(yùn)營(yíng)商,就需要分別接入三個(gè) SDK。現(xiàn)在我們也有更簡(jiǎn)單的方法,就是接入一個(gè)整合了三大運(yùn)營(yíng)商認(rèn)證能力的第三方 SDK,目前主要有以下幾家:

          • 阿里 - 號(hào)碼認(rèn)證服務(wù)
          • 極光 - 極光認(rèn)證
          • mob - 秒驗(yàn)

          原理和使用方法基本都是一樣的,具體大家可以查看它們的文檔。

          講一下我們比較關(guān)心的價(jià)格問(wèn)題,我了解了運(yùn)營(yíng)商和上面提到那幾家的計(jì)價(jià),認(rèn)證一次的價(jià)格集中在 4 到 6 分錢(qián)不等,其中最便宜的是 mob 的秒驗(yàn)。但價(jià)格可能會(huì)變化,這里就不具體討論了。

          一般是成功置換到手機(jī)號(hào)算一次計(jì)費(fèi),調(diào)用預(yù)取號(hào)接口和認(rèn)證失敗,都是不計(jì)費(fèi)的。

          總的來(lái)說(shuō),一鍵登錄和發(fā)送驗(yàn)證短信的價(jià)格差不多。發(fā)送短信是發(fā)送一條就計(jì)費(fèi)一次,但用戶存在需要多次獲取驗(yàn)證碼才能登錄成功的情況。而一鍵登錄能置換到手機(jī)號(hào),基本就意味著登錄成功了。所以從次數(shù)上考慮,接入一鍵登錄應(yīng)該還能稍微省一點(diǎn)。

          目前,一鍵登錄處于剛起步的階段,運(yùn)營(yíng)商的認(rèn)證服務(wù)還需要改進(jìn),對(duì)于用戶也還有一個(gè)被接受的過(guò)程。

          但毫無(wú)疑問(wèn),一鍵登錄將會(huì)成為未來(lái)的主流登陸方式之一。


          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩性做爰免费A片AA片 | 国产喷水| 波多野结衣成人在线视频 | av麻豆成人电影 AV免费在线网站 AV中文在线观看 A片黄色电影网站 | 天天撸在线视频 |