欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang jwt+token驗(yàn)證的實(shí)現(xiàn)

 更新時(shí)間:2020年10月21日 10:43:46   作者:諾爾尼亞之星  
這篇文章主要介紹了golang jwt+token驗(yàn)證的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Token驗(yàn)證是驗(yàn)證用戶身份的重要方式,在golang開(kāi)發(fā)中具有廣泛應(yīng)用,文中主要闡述了利用jwt包加密后的token驗(yàn)證。

導(dǎo)入包:

import (
  "github.com/dgrijalva/jwt-go"
)
// GenerateToken 生成Token
func GenerateToken(mapClaims jwt.MapClaims, key string) (string, error) {
  token := jwt.NewWithClaims(jwt.SigningMethodHS256, mapClaims)
  return token.SignedString([]byte(key))
}
// 驗(yàn)證token
func checkToken(uid int64,token *jwt.Token) bool {
  tokens, _ := token.SignedString([]byte(JWTKey))
  redisToken, _ := GetMemberToken(uid)
  if tokens != redisToken {
   return false
  }
  return true
}

用戶登錄請(qǐng)求取出token

token, err := request.ParseFromRequest(r, request.AuthorizationHeaderExtractor, func(token *jwt.Token) (interface{}, error) {
  return []byte(JWTKey), nil
})
if err == nil && token.Valid {
  tokenMap := token.Claims.(jwt.MapClaims)
  uidStr := tokenMap["uid"].(string)
  uid, _ := strconv.ParseInt(uidStr,10,64)

  if !checkToken(uid, token) {
   // 驗(yàn)證token 是否合法
   base.ErrorResponse(w, http.StatusUnauthorized, "Authorization Is Invalid")
   return
  }
}

token主要是生成,驗(yàn)證,以及用戶請(qǐng)求時(shí)解析token得出用戶uid和token的有效性

到此這篇關(guān)于golang jwt+token驗(yàn)證的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)golang jwt+token驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論