最新下载
热门教程
- 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的有效性。
相关文章
- crystaldiskinfo各项数据看法 05-07
- OpenClaw gateway无输出直接退出怎么办?三步解决无限重启问题 05-07
- 严选漫画app安卓苹果安装包下载入口-免费看韩国漫画网站最新版本下载 05-07
- 来自黑洞的旅人通用兑换码大全一览 05-07
- 虫林好汉乌合之众手游上线时间|虫林好汉乌合之众开服日期及预约入口 05-07
- 免费影视平台哪家强-免费看电影电视剧的宝藏app 05-07