• 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的有效性
  • 相关阅读:
    输入函数
    pe结构讲解
    pe结构讲解
    小甲鱼pe结构讲解
    pe结构讲解
    pe结构讲解
    YUI3学习笔记 ( 7 )
    [转载 css]用CSS调整scrollbar(滚动条)的配色
    [转载 js]一次性解决png在i6下的透明问题(包括做为img和背景的两种情况)
    YUI3学习笔记 ( 7 )
  • 原文地址:https://www.cnblogs.com/simple123/p/12933992.html
Copyright © 2020-2023  润新知