最近做的1個項目,有WEB版、WPF版、手機版。領導想集成團體的1個現成的認證系統,姑且稱這個認證系統名為 W4認證系統。
W4認證系統有以下特點:
1、現成的
2、是個單點登錄系統
3、不支持oAuth2
4、是個WEB版的認證系統,嚴重依賴于cookie
WEB版還好,沒有甚么大的問題,但WPF版這些桌面程序呢,如何與WEB版的認證系統集成?
如果看百度、微信等的oAuth2接口,發現其中有個參數,名曰display,支持多種訪問WEB、桌面等多種方式。由于沒有研究過,網上也沒有找到甚么介紹資料,不知道具體是怎樣樣的。
我在項目中,假想是構建1個認證中介服務,接收客戶端(包括WEB端、桌面端等)與W4認證系統之間的工作。對客戶端而言,其實不知道有所謂W4系統。一樣,對W4而言,亦不知那些客戶端為什么物。
桌面端具體登錄進程設計以下:
0、桌面端是WPF版,認證中介是WEB版
1、桌面端先與認證中介服務建立連接,通過socket.io
2、建立連接后,觸發事件,桌面端打開1個新窗口,里面是1個webbrowser,打開認證中介的頁面
3、認證中介轉向W4。轉向前做相干準備
4、在W4中登錄,成功后,認證中介向W4讀取賬戶資料(W4有相干接口)
5、認證中介相干處理后,將賬戶資料及access_token通過連接發回到桌面端
6、桌面端收到資料,關閉連接,登錄流程結束
上一篇 vmware的后臺啟動
下一篇 一位熱愛編程的大一同學期末困惑