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