主页 > 知识库 > golang jwt+token验证的实现

golang jwt+token验证的实现

热门标签:江苏呼叫中心外呼系统有效果吗 400开头电话怎样申请 杭州人工智能电销机器人费用 赤峰电销 利用地图标注位置 地图区域图标注后导出 谷歌美发店地图标注 贵州电话智能外呼系统 官渡电销外呼管理系统怎么收费

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的有效性

到此这篇关于golang jwt+token验证的实现的文章就介绍到这了,更多相关golang jwt+token验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • golang之JWT实现的示例代码
  • 详解Go-JWT-RESTful身份认证教程

标签:黔西 保定 松原 泰安 宜春 河池 武汉 鹰潭

巨人网络通讯声明:本文标题《golang jwt+token验证的实现》,本文关键词  golang,jwt+token,验证,的,实现,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《golang jwt+token验证的实现》相关的同类信息!
  • 本页收集关于golang jwt+token验证的实现的相关信息资讯供网民参考!
  • 推荐文章