當前位置:首頁 » 網頁前端 » 單點登錄前端要怎麼拿到用戶信息
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

單點登錄前端要怎麼拿到用戶信息

發布時間: 2023-06-05 16:57:59

Ⅰ 請問js如何設置單點登錄

你可以將原系統的賬號密碼做成一個配置的json文件,

然後前端訪問這個文件,賬號密碼一一對應就可以了。

從第三方系統單點登錄到目標系統,

第三方系統會發送token進行驗證,通過解析token,

獲取相應的用戶信息的json串,將其set到自己系統的session中。

Ⅱ 前端js可以直接獲取到微信用戶基本信息嗎

1、不可以直接獲取到用戶基本信息;

2、如果需要獲取微信用戶基本信息,可以參考微信的開發文檔進行:

網頁授權獲取用戶基本信息

如果用戶在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯。

網頁授權的兩種scope的區別說明

1、以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的用戶的openid的,並且是靜默授權並自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面)
2、以snsapi_userinfo為scope發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,並且由於用戶同意過,所以無須關注,就可在授權後獲取該用戶的基本信息。
3、用戶管理類介面中的「獲取用戶基本信息介面」,是在用戶和公眾號產生消息交互或關注後事件推送後,才能根據用戶OpenID來獲取用戶基本信息。這個介面,包括其他微信介面,都是需要該用戶(即openid)關注了公眾號後,才能調用成功的。

網頁授權流程分為四步:

1、引導用戶進入授權頁面同意授權,獲取code
2、通過code換取網頁授權access_token(與基礎支持中的access_token不同)
3、如果需要,開發者可以刷新網頁授權access_token,避免過期
4、通過網頁授權access_token和openid獲取用戶基本信息(支持UnionID機制

具體可以參考:微信 公眾平台開發者文檔--->用戶管理--->網頁授權獲取用戶基本信息 這一部分的內容。

Ⅲ 前端登陸實現

四種方式

Cookie 出現的原因: HTTP 協議是無狀態的,每次請求都會建立一個新的鏈接,請求結束就會斷開鏈接,優點就是可以節省鏈接資源,缺點就是無法保存用戶狀態。Cookie 的出現就是為了解決這個問題。

Cookie 是存儲在瀏覽器中的,可以通過 Js 和 set-cookie 這個響應欄位來進行設置。

cookie 的限制:

有了 cookie 之後,服務端就可以從客戶端獲取到信息,如果需要對信息進行驗證,那麼還需要 session

服務端在收到客戶端的請求之後,會在伺服器中開辟一片內存空間來存放 session

第一次登陸之後,下次再訪問的時候就會攜帶這個 cookie,服務端就可以根據 sessionId 進行驗證用戶是否登陸(判斷這個 sessionId 和服務端保存的 sessionId 是否一致,是否有這個 sessionId 的記錄或者記錄是否有效)

客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端信息以某種形式記錄在伺服器上。這就是 Session。客戶端瀏覽器再次訪問時只需要從該 Session 中查找該客戶的狀態就可以了。

Token 是 伺服器 生成的一個字元串,作為客戶端請求的一個令牌。第一次登陸之後,伺服器會生成一個 Token 返回給客戶端,客戶端後續訪問的時候,只需帶上這個 Token 進行身份認證

缺點

JWT(Json Web Token)

服務端不需要存儲 Token 那麼服務端是怎麼驗證客戶端傳遞過來的 Token 是否有效的呢?

答案:

Token 並不是雜亂無章的字元串,而是通過多種演算法拼接而成的字元串

header 部分指定了這個 Token 所使用的簽名演算法

payload 部分表明了這個 JWT 的意圖

signature 部分為 JWT 的簽名,主要是為了讓 JWT 不被隨意的篡改

簽名的部分有兩個步驟

一:

二:

最後的 Token 計算如下:

單點登陸指的是公司會搭建一個公共的認證中心,公司里的所有產品的認證都可以在這個認證中心中完成,一個產品在認證中心認證之後,再去訪問其他產品時就不需要再次認證

這個時候,由於 a.com 存在已登錄的 Cookie 信息,所以伺服器端直接認證成功。

這個時候由於認證中心存在之前登陸過的 cookie,所以不需要再輸入賬號密碼,直接從第四步開始執行

目前我們已經完成了單點登錄,在同一套認證中心的管理下,多個產品可以共享登錄態。現在我們需要考慮退出了,即:在一個產品中退出了登錄,怎麼讓其他的產品也都退出登錄?

原理也不難,其實就是在攜帶 ticket 去請求認證中心的時候,再去請求一下認證中心的退出登陸的 api 即可

當某個產品 c.com 退出登陸時

sso 就是一個集中地驗證系統。你項目內請求時,向 sso 發一個請求,他給你個 token 你扔到游覽器緩存里,請求的時候放在請求頭里帶著。和其他驗證介面一樣。 他好就好在,一個賬號在不同系統里都可以登錄,因為不同項目可以共用這個 token。並且通過 sso 集中管理一些用戶信息,你可以方便的拿用戶信息。

以微信為例子

Ⅳ 單點登錄的幾種實現方案

用戶已經登錄企業門戶的前提下,單點登錄到門戶中的應用。門戶與應用的域名有一定關系,門戶的域名是父級域,比如xxx.com,應用的域名為二級域,比如a.xxx.com、b.xxx.com、c.xxx.com

登錄掘敬門戶後埋扒,頒發一個token用於介面認判液慎證,創建一個key為_a,domain為.xxx.com,path為/,value為token的cookie並set-cookie到前端,訪問其他應用時,由於_a的domain為其他應用域名的父級域,會自動帶上_a到後端,後端根據_a做介面校驗,獲取用戶信息等資源,實現單點登錄。

用戶已經登錄企業門戶的前提下,單點登錄到門戶中的應用。門戶與應用的域名沒有關系。

依舊使用上面的方案一,但是token使用header傳輸,不存在跨域問題

以上方案二,有一些細節需要注意

沒有門戶,或者用戶不提前登錄門戶的前提下,不同應用實現單點登錄。

CAS,網上教程眾多,比如 CAS簡介和整體流程 。
方案二實際上也是利用了CAS思想實現的,ticket和token,可以類比CAS的ST(Service Ticket)和TGC(Ticket Granted Cookie)。

Ⅳ java web應用如何實現單點登錄

單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。實現單點登錄需要兩個部分的合作:統一的身份認證服務和修改Web應用,使得每個應用都通過這個統一的認證服務來進行身份效驗。

Ⅵ 一個app項目單點登錄,前端要做什麼,後端要做什麼。

前端需要做你那個用戶姓名,密碼一些驗證什麼的,然後有前端打包數據到後再去處理,進行邏輯判斷就可以了。

Ⅶ 前端單點登錄如何實現

單點登錄的思路是這樣的,假定有個兩個系統,A系統登錄一次後,再訪問B系統時是不需要登錄的,當訪問B系統時,就去登錄系統判斷是否有效,如果登錄系統放行了,說明是已經登錄過的。所以,需要建一個登錄系統,從登錄系統引出是否登錄的判斷,那麼不管是哪個系統在訪問需要驗證是否登錄的時候都去驗證登錄系統。

Ⅷ 前台輸入賬號密碼,後台代碼是怎麼一步步實現的,是如何從用戶表中讀取信息的,可以詳細說下么

從前台輸入賬號密碼到後台讀取用戶信息的過程可以分成以下幾個步驟:
1. 用戶在前台輸入賬號和密碼後點擊登錄按鈕,瀏覽器將賬號和密碼以POST請求的形式發送給伺服器。

2. 伺服器收到POST請求,進行身份認證,包括驗證賬號密碼是否正確、賬號是否被鎖定等,如果身份認證通過,則將一個加密的cookie發送到瀏覽器。

3. 瀏覽器收到cookie後,會將其存儲到本地緩存中,下次請求時會自動攜帶此cookie。

4. 當用戶在後續請求後台資源時,請求頭部攜帶上cookie,伺服器從頭部獲取cookie並進行驗證,驗證通過後讀取用戶數閉信息,將用戶信息返回給前台瀏覽器。

在以上過程中,後台代碼需要讀取用戶信息,通常需要進行以下操作:

1. 對資料庫進行連接,使用資料庫語句(如SELECT)查詢用戶表中是否存在該用戶。

2. 如果存在該用戶,則讀取用滾棗戶表中的用戶信息(如用戶名、密碼、郵箱等)。

3. 對讀取的用戶信息做處理,如加密用戶密碼等。

4. 如果身份認證通過,則將一個加密的cookie發送到瀏覽器。

總之,整個過程需要前後端代碼配合完成,其中前大畢拆端處理用戶輸入的賬號密碼,後端負責驗證身份並進行數據處理。在實現時需要考慮到安全性和用戶友好性。