999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于微信公眾號的通用授權中心的設計與實現

2019-12-04 04:16:01林健
數字技術與應用 2019年8期
關鍵詞:設計

林健

摘要:本文介紹了基于微信OAuth2.0用戶授權的通用型登錄入口的設計方案,該系統無需搭載額外的數據庫,易于部署。跟微信官方提供的用戶授權方式不同的地方在于本系統使用了前后端結合的長輪詢技術,讓服務端和客戶端都第一時間感知用戶是否已經掃碼,并進行下一步登錄操作。本系統可以作為中小型企業的授權中心使用。

關鍵詞:微信公眾號;二維碼;設計

中圖分類號:TP309 文獻標識碼:A 文章編號:1007-9416(2019)08-0151-01

1 項目背景及需求

目前很多單位或者企業的內部系統都面臨著這樣的問題:獨立開發的系統越來越多,每個系統又有一套獨立的賬號密碼,比如用身份證號、員工工號、員工姓名(漢字/拼音)作為賬號的,密碼的復雜度要求也不完全一致,導致用戶使用起來非常不便,更不用說各個系統之間的用戶數據如何進行對接了。而市面上很多系統都支持微信掃碼登錄,對于擁有微信公眾號的企業或者個人來說,可以通過微信OAuth2.0鑒權方式進行授權,本系統就是利用這一點,做到統一授權。

2 系統設計

本系統使用了ASP.NET MVC4后端架構,運行在IIS 7.5服務器上。前端主要使用Bootstrap框架實現用戶界面。數據庫不是必須的,原因是授權中心原則上只負責用戶的鑒權,不負責用戶數據的保存。用戶數據應該存放在各個子應用里面。在有需要的情況下也可以用數據庫把用戶信息保存起來,每次進行授權時再進行更新,因為諸如微信昵稱、微信頭像這種數據,用戶有可能不定期進行更改[1]。

整個用戶授權流程設計如:

(1)客戶端生成一個隨機ID作為本次掃碼的唯一標識,該ID作為服務端接口(url)的參數,并以此生成二維碼供用戶掃描。

(2)客戶端向服務端發起長輪詢監聽異步請求,檢測是否有用戶掃描二維碼。這個請求可以用jQuery的Ajax函數發起,但由于服務端和調用的客戶端一般不在同個域名下,在服務端返回的響應里面,要注意加入適當的響應頭以避免瀏覽器同源策略限制。

(3)服務端收到監聽請求,開始不斷掃描某個全局變量(一個鍵值對集合),這個過程會持續若干秒(目前是27秒,設置每100毫秒掃描一次,重復270次);1)27秒內,若無檢測到用戶掃碼,則服務端返回一個無掃碼的響應,客戶端接收到這個響應后,在異步請求的回調函數里面,重新發起新一輪監聽(可以用函數遞歸實現);2)27秒內,若有用戶掃碼,則服務端把用戶請求重定向到微信官方OAuth2.0的接口,通過該接口獲取用戶頭像、openId等信息。

(4)重定向后轉入正常的微信OAuth2.0授權過程;1)重定向到微信OAuth2.0接口url,微信服務器會分配一個臨時的code;2)服務端根據這個臨時的code向微信服務器換取用于訪問用戶數據的token;3)服務端利用該token從微信服務器申請獲取用戶數據,包括用戶頭像、openId、昵稱等信息,至此微信OAuth2.0過程結束,回到服務端主流程。

(5)服務端最終把從微信OAuth2.0獲取到的用戶數據,加上數字簽名,返回給客戶端,客戶端利用同樣的加密算法校驗數字簽名,判斷返回數據的可信性,再使用該數據進行下一步登錄操作,至此,屬于本系統的流程結束。

3 系統特色

本系統的較為核心的功能就是服務端感知用戶掃碼,然后通知被掃碼的客戶端。這里涉及到Web即時通信技術。目前主流的實現方式有三種:輪詢(polling);長輪詢(long polling);WebSocket。

這三者各有優劣,其中短輪詢從代碼實現上是最簡單的,客戶端定時向服務器發起一個請求,詢問用戶掃描的結果;長輪詢相對短輪詢來說代碼實現要麻煩一點,客戶端向服務器發起一個請求詢問用戶掃描結果,在這個期間,服務器不斷檢測釋放有用戶掃描,通過檢測結果決定保持響應還是立刻返回掃描結果,這種方式也是目前網頁版微信所使用的手段;最后是WebSocket,從用戶體驗上跟長輪詢無異,而且WebSocket的實現也需要服務端對用戶掃描結果進行不斷的檢測,從服務器壓力來看跟長輪詢相差不遠,但服務端的代碼量比前面兩者大,出于對后期代碼的維護性來考慮,最終選擇了和微信網頁版一樣的長輪詢來實現。

4 系統目前使用情況

本系統自開發完成以后,為一些項目提供了登錄功能。比如2019年的廣東省“攀登計劃”“基于.NET Core 的輕量級倉庫管理系統(項目編號 pdjh2019b0803)”,以及廣州康盛網絡科技公司開發的“電小智”產品管理后端都是用本系統作為其中一個登錄入口的。開發者們表示,由于系統設計基于無狀態的數字簽名驗證,不存在數據庫的構建和移植,所以在一個新系統上部署起來非常方便,一般來說半小時左右即可完成前后端代碼的整合。

5 結語

總之,本系統具備了一個中央授權系統所需要的基本功能,不過模塊化程度還有待提升。未來打算把后端代碼整合成一個獨立的項目包上傳到github上面,或者以微軟公司nuget插件的形式供其他開發者下載使用。

參考文獻

[1] 王興建,陳平,田小萍.基于微信企業號的掃碼認證授權的設計與實現[C].《中國計算機用戶協會網絡應用分會2018年第二十二屆網絡新技術與應用年會論文集,2018.

Design and Implementation of General Authorization Center Based on Wechat Public Number

LIN Jian

(Guangdong Vocational College of Post and Telecom , Guangzhou Guangdong? 510631)

Abstract:This paper introduces the design of a universal login entry based on the user authorization of Wechat OAuth 2.0 , The system needs no additional database and is easy to deploy. The difference from the user authorization method provided by WeChat officially is that the system uses long polling technology combined with front and back ends. Let the server and the client know for the first time whether the user has scanned the code, and proceed to the next login operation. This system can be used as an authorization center for small and medium-sized enterprises.

Key words:WeChat public number; two-dimensional code; design

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 免费Aⅴ片在线观看蜜芽Tⅴ| 日本高清免费一本在线观看| 国产XXXX做受性欧美88| 狂欢视频在线观看不卡| 午夜电影在线观看国产1区| a毛片在线播放| 国产在线精品网址你懂的| 国产精品久久精品| 国产91在线|日本| 97免费在线观看视频| 91免费片| 亚洲精品欧美重口| 高清无码手机在线观看| 女人av社区男人的天堂| 波多野结衣国产精品| 88国产经典欧美一区二区三区| 亚洲综合二区| 2021国产乱人伦在线播放 | 日韩精品一区二区深田咏美| 亚洲福利网址| 午夜福利网址| 国产91精品久久| 久久精品无码中文字幕| 日本久久久久久免费网络| 香蕉久久国产精品免| 无码一区中文字幕| 四虎影视库国产精品一区| 在线观看国产精品日本不卡网| 亚洲欧美日本国产专区一区| 成人在线观看一区| 国产91高跟丝袜| 精品国产免费观看| 国产成人艳妇AA视频在线| 国产办公室秘书无码精品| 国产成人综合欧美精品久久| 伊人91在线| 午夜人性色福利无码视频在线观看| 亚洲精品午夜无码电影网| 国产白浆一区二区三区视频在线| 在线网站18禁| 无码国产偷倩在线播放老年人| 亚洲一区二区三区国产精华液| 欧美成人精品在线| www.狠狠| 欧美色图第一页| 国产激情无码一区二区APP | 久久天天躁狠狠躁夜夜2020一| 日韩AV无码免费一二三区| 天天躁夜夜躁狠狠躁图片| 不卡色老大久久综合网| 久久午夜夜伦鲁鲁片不卡| 玖玖免费视频在线观看| 一本久道热中字伊人| 国产av一码二码三码无码| 久久精品只有这里有| 日韩无码真实干出血视频| 国产91线观看| 国产精品吹潮在线观看中文| 亚洲香蕉在线| 免费观看国产小粉嫩喷水| 亚洲精品桃花岛av在线| 亚洲一区二区黄色| 成人无码一区二区三区视频在线观看| 亚州AV秘 一区二区三区| 国产成人精品亚洲日本对白优播| 高清色本在线www| 成人福利在线免费观看| 国产成人艳妇AA视频在线| 午夜精品久久久久久久无码软件| 国产资源免费观看| 无码专区在线观看| 久久特级毛片| 91探花在线观看国产最新| 一区二区午夜| 国产在线精品网址你懂的| 国内精品视频区在线2021| 丰满人妻一区二区三区视频| 国产欧美视频在线| 91年精品国产福利线观看久久| 国产欧美日韩视频怡春院| …亚洲 欧洲 另类 春色| 一级毛片在线免费看|