@ -16,60 +16,60 @@ import (
//鉴权
//鉴权
func MyAuthentication ( ) gin . HandlerFunc {
func MyAuthentication ( ) gin . HandlerFunc {
return func ( c * gin . Context ) {
return func ( c * gin . Context ) {
userKey := c . Request . Header . Get ( "user-key" )
// userKey := c.Request.Header.Get("user-key")
userToken := c . Request . Header . Get ( "user-token" )
// userToken := c.Request.Header.Get("user-token")
userAgent := c . Request . Header . Get ( "User-Agent" )
// userAgent := c.Request.Header.Get("User-Agent")
if userKey == "" || userToken == "" || userAgent == "" {
// if userKey == "" || userToken == "" || userAgent == "" {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 1 } , "未登录或非法访问" , c )
// response.FailWithDetailed(gin.H{"reload": true, "code": 1}, "未登录或非法访问", c)
c . Abort ( )
// c.Abort()
return
// return
}
// }
userAgent = "250"
// userAgent = "250"
userKeyInt , userKeyIntErr := strconv . ParseInt ( userKey , 10 , 64 )
// userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64)
if userKeyIntErr != nil {
// if userKeyIntErr != nil {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 2 } , "未登录或非法访问" , c )
// response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c)
c . Abort ( )
// c.Abort()
return
// return
}
// }
global . GVA_INDEX_USERKEY = userKeyInt
// global.GVA_INDEX_USERKEY = userKeyInt
redisClient := redishandel . RunRedis ( )
// redisClient := redishandel.RunRedis()
tokenInfo , isTrues := redisClient . HashGetAll ( "system:Identification_" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + userKey )
// tokenInfo, isTrues := redisClient.HashGetAll("system:Identification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey)
var myCustomIdentify commonus . MyCustomLogonIdentify
// var myCustomIdentify commonus.MyCustomLogonIdentify
if isTrues != true {
// if isTrues != true {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 3 } , "您的帐户异地登陆或令牌失效" , c )
// response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c)
c . Abort ( )
// c.Abort()
return
// return
} else {
// } else {
tokenErr := mapstructure . Decode ( tokenInfo , & myCustomIdentify )
// tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify)
if tokenErr != nil {
// if tokenErr != nil {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 3 } , "您的帐户异地登陆或令牌失效" , c )
// response.FailWithDetailed(gin.H{"reload": true, "code": 3}, "您的帐户异地登陆或令牌失效", c)
c . Abort ( )
// c.Abort()
return
// return
}
// }
var md5JiaMi commonus . Md5Encryption
// var md5JiaMi commonus.Md5Encryption
md5JiaMi . Md5EncryptionInit ( userAgent )
// md5JiaMi.Md5EncryptionInit(userAgent)
md5Token := md5JiaMi . Md5EncryptionAlgorithm ( )
// md5Token := md5JiaMi.Md5EncryptionAlgorithm()
sha1Str := myCustomIdentify . UserKey + myCustomIdentify . UserNumber + myCustomIdentify . UserPwd + md5Token
// sha1Str := myCustomIdentify.UserKey + myCustomIdentify.UserNumber + myCustomIdentify.UserPwd + md5Token
sha1Token := commonus . Sha1Encryption ( sha1Str )
// sha1Token := commonus.Sha1Encryption(sha1Str)
// fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
// // fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
if sha1Token != userToken {
// if sha1Token != userToken {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 3 , "userAgent" : userAgent , "sha1Token" : sha1Token , "userToken" : userToken , "tokenInfo" : tokenInfo } , "授权已过期" , c )
// response.FailWithDetailed(gin.H{"reload": true, "code": 3, "userAgent": userAgent, "sha1Token": sha1Token, "userToken": userToken, "tokenInfo": tokenInfo}, "授权已过期", c)
c . Abort ( )
// c.Abort()
return
// return
}
// }
}
// }
redisClient . SetRedisTime ( 86400 )
// redisClient.SetRedisTime(86400)
// redisClient.SetRedisTime(60)
// // redisClient.SetRedisTime(60)
writeRedisData := map [ string ] interface { } {
// writeRedisData := map[string]interface{}{
"userkey" : myCustomIdentify . UserKey ,
// "userkey": myCustomIdentify.UserKey,
"usernumber" : myCustomIdentify . UserNumber ,
// "usernumber": myCustomIdentify.UserNumber,
"userpwd" : myCustomIdentify . UserPwd ,
// "userpwd": myCustomIdentify.UserPwd,
"usertoken" : myCustomIdentify . UserToken ,
// "usertoken": myCustomIdentify.UserToken,
}
// }
redisClient . HashMsetAdd ( "system:Identification_" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + userKey , writeRedisData )
// redisClient.HashMsetAdd("system:Identification_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+userKey, writeRedisData)
c . Next ( )
c . Next ( )
}
}
}
}
@ -99,32 +99,143 @@ func MyCasbinHandler() gin.HandlerFunc {
// c.Abort()
// c.Abort()
// return
// return
// }
// }
redisFileKey := "ScanCode:UserInfo:LoginUser_" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + global . GVA_SCANCODE_USERNUMBER
redisClient := redishandel . RunRedis ( )
redisClient . SetRedisDb ( 5 )
tokenInfo , isTrues := redisClient . HashGetAll ( redisFileKey )
if isTrues == true {
mapstructure . Decode ( tokenInfo , & global . GVA_SCANCODE_USERINFO )
}
}
}
}
}
func SystemAuthentication ( ) gin . HandlerFunc {
func SystemAuthentication ( ) gin . HandlerFunc {
return func ( c * gin . Context ) {
// userKey := c.Request.Header.Get("user-key")
// userToken := c.Request.Header.Get("user-token")
// userAgent := c.Request.Header.Get("User-Agent")
// if userKey == "" || userToken == "" || userAgent == "" {
// response.FailWithDetailed(gin.H{"reload": true, "code": 101}, "未登录或非法访问", c)
// c.Abort()
// return
// }
// userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64)
// if userKeyIntErr != nil {
// response.FailWithDetailed(gin.H{"reload": true, "code": 2}, "未登录或非法访问", c)
// c.Abort()
// return
// }
// global.GVA_ADMIN_USERKEY = userKeyInt
// redisClient := redishandel.RunRedis()
// tokenInfo, isTrues := redisClient.HashGetAll("system:SystemIdentification_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey)
// var myCustomIdentify commonus.MyCustomAdminLogonIdentify
// if isTrues != true {
// response.FailWithDetailed(gin.H{"reload": true, "code": 102}, "您的帐户异地登陆或令牌失效", c)
// c.Abort()
// return
// } else {
// tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify)
// if tokenErr != nil {
// response.FailWithDetailed(gin.H{"reload": true, "code": 103, "tokenErr": tokenErr}, "您的帐户异地登陆或令牌失效", c)
// c.Abort()
// return
// }
// userAgent = "250"
// var md5JiaMi commonus.Md5Encryption
// md5JiaMi.Md5EncryptionInit(userAgent)
// md5Token := md5JiaMi.Md5EncryptionAlgorithm()
// sha1Str := myCustomIdentify.UserKey + myCustomIdentify.UserNumber + myCustomIdentify.UserPwd + md5Token
// sha1Token := commonus.Sha1Encryption(sha1Str)
// // fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
// if sha1Token != userToken {
// response.FailWithDetailed(gin.H{"reload": true, "code": 104}, "授权已过期", c)
// c.Abort()
// return
// }
// }
// redisClient.SetRedisTime(86400)
// writeRedisData := map[string]interface{}{
// "userkey": myCustomIdentify.UserKey,
// "usernumber": myCustomIdentify.UserNumber,
// "userpwd": myCustomIdentify.UserPwd,
// "usertoken": myCustomIdentify.UserToken,
// "jurisdiction": myCustomIdentify.Jurisdiction,
// "menuOper": myCustomIdentify.MenuOper,
// "wand": myCustomIdentify.Wand,
// }
// var surisdictionStr []string
// var surisdictionInt []int64
// jsonErr := json.Unmarshal([]byte(myCustomIdentify.Jurisdiction), &surisdictionStr)
// if jsonErr == nil {
// for _, jurVal := range surisdictionStr {
// jurValInt, jurValErr := strconv.ParseInt(jurVal, 10, 64)
// if jurValErr == nil {
// surisdictionInt = append(surisdictionInt, jurValInt)
// }
// }
// }
// global.Gva_Authority_Authentication = surisdictionInt
// var menuOperStr []string
// var menuOperInts []int64
// jsonErrSun := json.Unmarshal([]byte(myCustomIdentify.MenuOper), &menuOperStr)
// if jsonErrSun == nil {
// for _, menuOperVal := range menuOperStr {
// menuOperInt, menuOperErr := strconv.ParseInt(menuOperVal, 10, 64)
// if menuOperErr == nil {
// menuOperInts = append(menuOperInts, menuOperInt)
// }
// }
// }
// global.Gva_Authority_Authentication_Subsidiary = menuOperInts
// redisClient.HashMsetAdd("system:SystemIdentification_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+userKey, writeRedisData)
c . Next ( )
}
}
// 拦截器
func SystemCasbinHandler ( ) gin . HandlerFunc {
return func ( c * gin . Context ) {
}
}
//扫码登录身份验证
func ScanCodeLogin ( ) gin . HandlerFunc {
return func ( c * gin . Context ) {
return func ( c * gin . Context ) {
userKey := c . Request . Header . Get ( "user-key" )
userKey := c . Request . Header . Get ( "user-key" )
userToken := c . Request . Header . Get ( "user-token" )
userToken := c . Request . Header . Get ( "user-token" )
userAgent := c . Request . Header . Get ( "User-Agent" )
userAgent := c . Request . Header . Get ( "User-Agent" )
redisFileKey := "ScanCode:Authentication:LoginApi_" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + userKey
if userKey == "" || userToken == "" || userAgent == "" {
if userKey == "" || userToken == "" || userAgent == "" {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 101 } , "未登录或非法访问" , c )
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 101 } , "未登录或非法访问" , c )
c . Abort ( )
c . Abort ( )
return
return
}
}
userKeyInt , userKeyIntErr := strconv . ParseInt ( userKey , 10 , 64 )
// userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64)
if userKeyIntErr != nil {
// if userKeyIntErr != nil {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 2 } , "未登录或非法访问" , c )
// response.FailWithDetailed(gin.H{"reload": true, "code": 2, "userKey": userKey}, "未登录或非法访问", c)
c . Abort ( )
// c.Abort()
return
// return
}
// }
global . GVA_ADMIN_USERKEY = userKeyInt
global . GVA_ADMIN_USERKEY = userKey
redisClient := redishandel . RunRedis ( )
redisClient := redishandel . RunRedis ( )
tokenInfo , isTrues := redisClient . HashGetAll ( "system:SystemIdentification_" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + userKey )
redisClient . SetRedisDb ( 5 )
var myCustomIdentify commonus . MyCustomAdminLogonIdentify
tokenInfo , isTrues := redisClient . HashGetAll ( redisFileKey )
var myCustomIdentify commonus . ScanCodeLogin
if isTrues != true {
if isTrues != true {
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 102 } , "您的帐户异地登陆或令牌失效" , c )
response . FailWithDetailed ( gin . H { "reload" : true , "code" : 102 } , "您的帐户异地登陆或令牌失效" , c )
c . Abort ( )
c . Abort ( )
@ -140,7 +251,12 @@ func SystemAuthentication() gin.HandlerFunc {
var md5JiaMi commonus . Md5Encryption
var md5JiaMi commonus . Md5Encryption
md5JiaMi . Md5EncryptionInit ( userAgent )
md5JiaMi . Md5EncryptionInit ( userAgent )
md5Token := md5JiaMi . Md5EncryptionAlgorithm ( )
md5Token := md5JiaMi . Md5EncryptionAlgorithm ( )
sha1Str := myCustomIdentify . UserKey + myCustomIdentify . UserNumber + myCustomIdentify . UserPwd + md5Token
var md5JiaMiNumber commonus . Md5Encryption
md5JiaMiNumber . Md5EncryptionInit ( myCustomIdentify . UserNumber )
userKeyCode := md5JiaMi . Md5EncryptionAlgorithm ( )
sha1Str := userKeyCode + myCustomIdentify . UserNumber + myCustomIdentify . UserPwd + md5Token
sha1Token := commonus . Sha1Encryption ( sha1Str )
sha1Token := commonus . Sha1Encryption ( sha1Str )
// fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
// fmt.Printf("token=========>%v---->%v---->%v\n", md5Token, sha1Token, userAgent)
if sha1Token != userToken {
if sha1Token != userToken {
@ -149,9 +265,11 @@ func SystemAuthentication() gin.HandlerFunc {
return
return
}
}
}
}
redisClient . SetRedisTime ( 86400 )
global . GVA_SCANCODE_USERNUMBER = myCustomIdentify . UserNumber
writeRedisData := map [ string ] interface { } {
writeRedisData := map [ string ] interface { } {
"userkey" : myCustomIdentify . UserKey ,
"userkey" : myCustomIdentify . UserKey ,
"key" : myCustomIdentify . Key ,
"usernumber" : myCustomIdentify . UserNumber ,
"usernumber" : myCustomIdentify . UserNumber ,
"userpwd" : myCustomIdentify . UserPwd ,
"userpwd" : myCustomIdentify . UserPwd ,
"usertoken" : myCustomIdentify . UserToken ,
"usertoken" : myCustomIdentify . UserToken ,
@ -172,6 +290,7 @@ func SystemAuthentication() gin.HandlerFunc {
}
}
}
}
global . Gva_Authority_Authentication = surisdictionInt
global . Gva_Authority_Authentication = surisdictionInt
var menuOperStr [ ] string
var menuOperStr [ ] string
var menuOperInts [ ] int64
var menuOperInts [ ] int64
@ -186,14 +305,9 @@ func SystemAuthentication() gin.HandlerFunc {
}
}
}
}
global . Gva_Authority_Authentication_Subsidiary = menuOperInts
global . Gva_Authority_Authentication_Subsidiary = menuOperInts
redisClient . HashMsetAdd ( "system:SystemIdentification_" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + userKey , writeRedisData )
redisClient . SetRedisTime ( 10800 )
c . Next ( )
redisClient . HashMsetAdd ( redisFileKey , writeRedisData )
}
}
// 拦截器
func SystemCasbinHandler ( ) gin . HandlerFunc {
return func ( c * gin . Context ) {
c . Next ( )
}
}
}
}