最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
golang jwt+token验证如何实现 golang jwt+token验证实现代码
时间:2022-06-24 17:37:22 编辑:袖梨 来源:一聚教程网
golang jwt+token验证如何实现?本篇文章小编给大家分享一下golang jwt+token验证实现代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
Token验证是验证用户身份的重要方式,在golang开发中具有广泛应用,文中主要阐述了利用jwt包加密后的token验证。
导入包:
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))
}
// 验证token
func checkToken(uid int64,token *jwt.Token) bool {
tokens, _ := token.SignedString([]byte(JWTKey))
redisToken, _ := GetMemberToken(uid)
if tokens != redisToken {
return false
}
return true
}
用户登录请求取出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) {
// 验证token 是否合法
base.ErrorResponse(w, http.StatusUnauthorized, "Authorization Is Invalid")
return
}
}
token主要是生成,验证,以及用户请求时解析token得出用户uid和token的有效性。
相关文章
- 蛮荒领主女娲角色简介 06-29
- 荒蛮领主大禹角色档案 06-29
- 三色绘恋迟菓攻略-三色绘恋角色大全 06-29
- 蛮荒领主每日/每周必做清单 06-29
- 太吾绘卷天幕心帷太吾村如何规划 太吾绘卷天幕心帷太吾村建设布局分享 06-29
- 蛮荒领主嫘祖 角色档案 06-29