利用微信服務(wù)號oauth實現(xiàn)掃碼登錄

誰說管理后臺就要用繁瑣的帳號密碼登錄的?

寫代碼寫了五年鞋囊,寫管理后臺更是家常便飯。然后寫多了之后瞎惫,一是覺得常規(guī)的太沒有味道了溜腐。第一步,輸入帳號密碼瓜喇,第二步校驗帳號密碼是否正確挺益。最多就加上驗證碼,防止惡意登錄乘寒。

但是望众,最近發(fā)現(xiàn)越來越多網(wǎng)站都支持APP掃碼登錄了,那么我寫的管理后臺也可以采用高大上(簡單粗暴)的掃碼登錄嘛伞辛。但是烂翰,我沒理由去開發(fā)一個APP吧(其實我不會app開發(fā))。這個時候蚤氏,撿一個現(xiàn)成的app就好了嘛甘耿。但是現(xiàn)成app要開發(fā)帳號信息才行呀,符合這個要求的一個app就是微信竿滨。微信服務(wù)號提供oauth支持棵里,可以根據(jù)openid唯一識別用戶。

先放三張帥氣的圖片體現(xiàn)一下這種方法的優(yōu)雅:

管理后臺登錄界面

別掃這個二維碼姐呐,因為地址是本地的,線上地址怎么可以放出來呢典蝌?

管理員微信掃碼結(jié)果

看起來還是挺順眼和方便的對吧曙砂,【容我自傲一下,畢竟我是后臺和運維出身】

非管理員掃碼結(jié)果

如果沒有權(quán)限的微信掃碼是不讓他登錄的骏掀,多么完美鸠澈!

掃碼登錄原理

上面寫了這么多門面話,我們現(xiàn)在進入正題截驮,我們用一個圖來看一下掃碼登錄的背后架構(gòu)笑陈。

掃碼登錄架構(gòu)

首先,這圖好像有點亂葵袭,我們細細分析一下(看的時候我們可以分開兩部分看涵妥,管理后臺和手機端兩個部分)。

首先坡锡,我們每一次打開管理后臺都拿到一個token(隨機字符串)蓬网。這個隨機字符串的作用是用于識別用戶的窒所,因為我們用手機在走登錄流程,服務(wù)器要判斷手機和在登錄管理后臺的電腦就需要一個標(biāo)識物來關(guān)聯(lián)帆锋。

管理后臺的二維碼其實是一個地址吵取,這個地址有一個get參數(shù),就是記錄著token锯厢。當(dāng)我們用微信掃碼跳轉(zhuǎn)到一個頁面皮官,我們就可以拿到token的內(nèi)容。然后实辑,微信向系統(tǒng)提交登錄的相關(guān)信息和這個token值捺氢,系統(tǒng)就知道這個token的用戶是一個管理員。

但是徙菠,掃碼允許登錄之后讯沈,pc那邊這么知道呢?這就需要pc端不停的拿token去詢問服務(wù)器了婿奔,直到服務(wù)器告知這個token是管理員之后再做后續(xù)操作(不停詢問的方法有很多缺狠,常見的有ajax不停輪詢和websocket)。

微信oauth登錄原理

微信oauth原理

微信oauth登錄過程:

  1. 引導(dǎo)用戶跳轉(zhuǎn)到微信服務(wù)器萍摊,并且?guī)弦粋€編碼后的地址A

  2. 用戶在微信服務(wù)器挤茄,點擊同意授權(quán)(或者無感知的登錄),就會跳轉(zhuǎn)到地址A冰木,并且?guī)蠀?shù)code

  3. 我們需要在地址A拿到code參數(shù)穷劈,然后加上微信服務(wù)號的appid和appkey等參數(shù),請求微信服務(wù)器踊沸,然后就得到了用戶openid和一個token

  4. 用戶openid已經(jīng)是唯一標(biāo)識符了歇终,如果我們還需要用戶其它信息,就需要用token和openid再一次請求微信服務(wù)器逼龟,從而獲取所需信息评凝。

一些要注意的事情

掃碼登錄是很方便,但是我們要注意腺律,既然是放在互聯(lián)網(wǎng)上的服務(wù)奕短,就必須小心防范各種攻擊。

  • token需要一個短的有效期匀钧,看看微信網(wǎng)頁版就會一段時間自動刷新二維碼翎碑。畢竟這個token關(guān)系到登錄安全,需謹慎之斯。

  • 掃碼登錄必須要用戶確認日杈,不然如果欺騙用戶掃描了一個二維碼就登錄到管理后臺了。

  • 掃碼登錄的防止惡意登錄的大部分工作都放在了移動端,所以用于掃碼的設(shè)備和應(yīng)用的安全性需要有所保障达椰。我們往往可以用微信等提供oauth服務(wù)的app來掃碼處理翰蠢。

喜歡我的文章,就點個贊點個關(guān)注咧啰劲,寫文章不易梁沧,特別對于一個寫代碼做架構(gòu)卻不重文筆的程序猴子。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝇裤,一起剝皮案震驚了整個濱河市廷支,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栓辜,老刑警劉巖恋拍,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異藕甩,居然都是意外死亡施敢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門狭莱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來僵娃,“玉大人,你說我怎么就攤上這事腋妙∧梗” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵骤素,是天一觀的道長匙睹。 經(jīng)常有香客問我,道長济竹,這世上最難降的妖魔是什么痕檬? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮送浊,結(jié)果婚禮上谆棺,老公的妹妹穿的比我還像新娘。我一直安慰自己罕袋,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布碍岔。 她就那樣靜靜地躺著浴讯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔼啦。 梳的紋絲不亂的頭發(fā)上榆纽,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼奈籽。 笑死饥侵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衣屏。 我是一名探鬼主播躏升,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼狼忱!你這毒婦竟也來了膨疏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤钻弄,失蹤者是張志新(化名)和其女友劉穎佃却,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窘俺,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡饲帅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瘤泪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灶泵。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖均芽,靈堂內(nèi)的尸體忽然破棺而出丘逸,到底是詐尸還是另有隱情,我是刑警寧澤掀宋,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布深纲,位于F島的核電站,受9級特大地震影響劲妙,放射性物質(zhì)發(fā)生泄漏湃鹊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一镣奋、第九天 我趴在偏房一處隱蔽的房頂上張望币呵。 院中可真熱鬧,春花似錦侨颈、人聲如沸余赢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妻柒。三九已至,卻和暖如春耘分,著一層夾襖步出監(jiān)牢的瞬間举塔,已是汗流浹背绑警。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留央渣,地道東北人计盒。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像芽丹,于是被迫代替她去往敵國和親北启。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容