新聞中心
Redis作為一種定義為高級(jí)key-value緩存,在存取時(shí)間短的情況下搭建的NoSQL,是存儲(chǔ)持久化的信息的最佳選擇,有著高可用性、快速響應(yīng)時(shí)間等特點(diǎn)。而JSON Web token(JWT)是用于在客戶端和服務(wù)器之間傳輸信息的應(yīng)用程序的標(biāo)準(zhǔn),由于其核心的幾大特性(獨(dú)立性,無(wú)狀態(tài)性,易擴(kuò)展性,安全性),JWT在Web開(kāi)發(fā)和RESTful架構(gòu)中越發(fā)普及。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、西工網(wǎng)站維護(hù)、網(wǎng)站推廣。
基于Redis集群來(lái)實(shí)現(xiàn)JWT具有一定的突出優(yōu)勢(shì),一方面Redis可以實(shí)現(xiàn)極高的性能和提供高可用性,并且Redis集群可以實(shí)現(xiàn)check-out token,從而避免令牌因概率超時(shí)而被刪除;另一方面,Redis集群提供了原子性,能夠保證多線程訪問(wèn)和有序性,從而避免出現(xiàn)數(shù)據(jù)庫(kù)存儲(chǔ)token出現(xiàn)交叉添加等問(wèn)題,而且Redis的存儲(chǔ)方式也極大的減少了數(shù)據(jù)庫(kù)的負(fù)載存儲(chǔ)壓力。
實(shí)現(xiàn)JWT基于Redis集群一般采用labstack/echo框架,下面是針對(duì)echo框架實(shí)現(xiàn)JWT基于Redis集群的代碼實(shí)現(xiàn):
// 注冊(cè)JWT中間件
e := echo.New()
config := jwt.JWTConfig{
SigningKey: “justforTesting”, //secret秘鑰
SigningMethod: “HS256”, //jwt簽名方法
Done: doneFunc,
}
e.Use(jwt.JWTWithConfig(config))
// 將token緩存到Redis集群
redisConn,ERR := redis.NewClusterClient(&redis.ClusterOptions{
Addrs: []string{“host:7777″,”host2:7777”},
Password “password”,
})
// 添加token實(shí)現(xiàn)
func doneFunc (clms jwt.Clms) error {
token, err := jwt.GenerateToken(clms)
if err != nil {
return err
}
jwt.StoreToken(token, clms, redisConn) // stores the token in redis
return nil
}
// 驗(yàn)證token
func validateFunc (token string) (jwt.Clms, error) {
clms, err := jwt.ParseToken(token, redisConn)
if err != nil {
return jwt.Clms{}, err
}
return clms, nil
}
上述就是基于Redis集群實(shí)現(xiàn)JWT的過(guò)程,使用Redis集群可以極大加快token驗(yàn)證的處理速度,而且具有較高的可用性,可以在多伺服端機(jī)器上保證token處理的連續(xù)性。
成都網(wǎng)站設(shè)計(jì)制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設(shè)定制開(kāi)發(fā)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開(kāi)發(fā),營(yíng)銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。
當(dāng)前標(biāo)題:基于Redis集群的JWT實(shí)現(xiàn)方案(redis集群jwt)
網(wǎng)頁(yè)網(wǎng)址:http://m.5511xx.com/article/ccdchog.html


咨詢
建站咨詢
