1、什么是單點登錄
單點登錄就是用戶集群部署的分布式架構下,只需要在某個模塊登錄后,再去訪問其他模塊的時候不需要登錄驗證。
2、單點登錄的三種實現(xiàn)方式
(1)session廣播機制
實現(xiàn)方式:用戶在某個模塊登錄后,用戶信息存在這個模塊session中,然后在其他模塊進行session復制
缺點:雖然可以實現(xiàn)SSO,但是假如項目有幾十個模塊,就要復制幾十次session,極大的消耗資源資源。
(2)用cookie+redis實現(xiàn)
cookie特點:是一種客戶端技術,每次發(fā)送請求,帶著cookie值進行發(fā)送
redis特點:基于key-value進行存儲
實現(xiàn)方式:在項目中任何一個模塊進行登錄,登錄之后,把數(shù)據(jù)放到兩個地方:
①redis:在key:生成唯一隨機值,在value:存放用戶數(shù)據(jù)
②cookie:把redis里面生成的key值放到cookie里面
訪問項目中訪問其他模塊時,發(fā)送請求帶著cookie進行發(fā)送,獲取cookie值,到redis根據(jù)key進行查詢,如果查詢到數(shù)據(jù)就是 登錄,查不到就沒有登錄。
(3)使用token實現(xiàn)
token是什么:按照一定規(guī)則生成的字符串,字符串可以包含用戶信息
實現(xiàn)方式:在項目某個模塊進行登錄,登錄之后,按照規(guī)則生成字符串,把登錄之后用戶信息包含到生成的字符串里面,把①字符串通過地址欄返回②把字符串通過cookie返回,再去訪問其他模塊時,在地址欄帶著生成的字符串,在訪問模塊里面獲取地址欄字符串,根據(jù)字符串獲取用戶信息,如果可以獲取到就是登錄。
私信666領取資料