|
|
@ -2,6 +2,7 @@ package custom |
|
|
|
|
|
|
|
|
import ( |
|
|
import ( |
|
|
"encoding/json" |
|
|
"encoding/json" |
|
|
|
|
|
"fmt" |
|
|
"strconv" |
|
|
"strconv" |
|
|
|
|
|
|
|
|
"github.com/flipped-aurora/gin-vue-admin/server/api/admin/systemuser" |
|
|
"github.com/flipped-aurora/gin-vue-admin/server/api/admin/systemuser" |
|
|
@ -207,3 +208,134 @@ func (cu *CustomHandle) SystemLogin(c *gin.Context) { |
|
|
// response.FailWithMessage("验证码错误", c)
|
|
|
// response.FailWithMessage("验证码错误", c)
|
|
|
// }
|
|
|
// }
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//oauth2.0
|
|
|
|
|
|
func (cu *CustomHandle) OauthTwo(c *gin.Context) { |
|
|
|
|
|
var requestData getData |
|
|
|
|
|
err := c.ShouldBindJSON(&requestData) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
response.Result(101, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if requestData.Number == "" { |
|
|
|
|
|
response.Result(102, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
redisClient := redishandel.RunRedis() |
|
|
|
|
|
tokenErr, token := redisClient.Get("system:Oauth2_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + requestData.Number) |
|
|
|
|
|
if tokenErr == true { |
|
|
|
|
|
saveData := commonus.MapOut() |
|
|
|
|
|
saveData["token"] = token |
|
|
|
|
|
response.Result(0, saveData, "登录成功!", c) |
|
|
|
|
|
} else { |
|
|
|
|
|
userAgent := c.Request.Header.Get("User-Agent") |
|
|
|
|
|
var md5JiaMi commonus.Md5Encryption |
|
|
|
|
|
md5JiaMi.Md5EncryptionInit(userAgent) |
|
|
|
|
|
md5Token := md5JiaMi.Md5EncryptionAlgorithm() |
|
|
|
|
|
|
|
|
|
|
|
var md5Number commonus.Md5Encryption |
|
|
|
|
|
md5Number.Md5EncryptionInit(requestData.Number) |
|
|
|
|
|
md5NumberToken := md5Number.Md5EncryptionAlgorithm() |
|
|
|
|
|
|
|
|
|
|
|
sha1Str := fmt.Sprintf("%v-%v-%v", md5Token, requestData.Number, md5NumberToken) |
|
|
|
|
|
sha1Token := commonus.Sha1Encryption(sha1Str) |
|
|
|
|
|
|
|
|
|
|
|
saveData := commonus.MapOut() |
|
|
|
|
|
saveData["token"] = sha1Token |
|
|
|
|
|
redisClient.SetRedisTime(10800) |
|
|
|
|
|
redisClient.Set("system:Oauth2_"+global.GVA_CONFIG.RedisPrefix.Alias+"_"+requestData.Number, sha1Token) |
|
|
|
|
|
response.Result(0, saveData, "Token获取成功!", c) |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//企业微信单点登录
|
|
|
|
|
|
func (cu *CustomHandle) SingleSignOn(c *gin.Context) { |
|
|
|
|
|
var requestData oneLogin |
|
|
|
|
|
err := c.ShouldBindJSON(&requestData) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
response.Result(101, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if requestData.Number == "" { |
|
|
|
|
|
response.Result(102, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if requestData.Token == "" { |
|
|
|
|
|
response.Result(102, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if requestData.OpenId == "" { |
|
|
|
|
|
response.Result(102, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
redisClient := redishandel.RunRedis() |
|
|
|
|
|
tokenErr, token := redisClient.Get("system:Oauth2_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + requestData.Number) |
|
|
|
|
|
if tokenErr != true { |
|
|
|
|
|
response.Result(103, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if token != requestData.Token { |
|
|
|
|
|
response.Result(103, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
isTrue, userInfo := commonus.GetUesrContForWechatID(requestData.OpenId) |
|
|
|
|
|
if isTrue != true { |
|
|
|
|
|
response.Result(103, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//获取操作人
|
|
|
|
|
|
userFileStr := "worker_man.*,worker_man_data.*" |
|
|
|
|
|
//操作人条件
|
|
|
|
|
|
userWherAry := commonus.MapOut() |
|
|
|
|
|
// userWherAry["wm_key"] = "WoBenShanLiang_3" //"WoBenShanLiang_3"
|
|
|
|
|
|
userWherAry["wm_key"] = userInfo.Key |
|
|
|
|
|
userConting, userIsTrue := commonus.GetUserInfoPublic(userFileStr, userWherAry) |
|
|
|
|
|
if userIsTrue != true { |
|
|
|
|
|
response.Result(103, err, "单点登录登录失败!", c) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
userAgent := c.Request.Header.Get("User-Agent") |
|
|
|
|
|
|
|
|
|
|
|
var md5JiaMi commonus.Md5Encryption |
|
|
|
|
|
md5JiaMi.Md5EncryptionInit(userAgent) |
|
|
|
|
|
md5Token := md5JiaMi.Md5EncryptionAlgorithm() |
|
|
|
|
|
|
|
|
|
|
|
sha1Str := fmt.Sprintf("%v%v%v%v", userConting.Key, userConting.Number, userConting.Password, md5Token) |
|
|
|
|
|
sha1Token := commonus.Sha1Encryption(sha1Str) |
|
|
|
|
|
|
|
|
|
|
|
saveData := commonus.MapOut() |
|
|
|
|
|
saveData["key"] = userConting.Key |
|
|
|
|
|
saveData["token"] = sha1Token |
|
|
|
|
|
saveData["userinfo"] = userConting |
|
|
|
|
|
|
|
|
|
|
|
writeRedisData := map[string]interface{}{ |
|
|
|
|
|
"userkey": userInfo.Key, |
|
|
|
|
|
"usernumber": userInfo.Number, |
|
|
|
|
|
"userpwd": userConting.Password, |
|
|
|
|
|
"usertoken": sha1Token, |
|
|
|
|
|
} |
|
|
|
|
|
redisClient.SetRedisTime(10800) |
|
|
|
|
|
redisKey := fmt.Sprintf("system:Identification_%v_%v", global.GVA_CONFIG.RedisPrefix.Alias, userInfo.Key) |
|
|
|
|
|
redisClient.HashMsetAdd(redisKey, writeRedisData) |
|
|
|
|
|
|
|
|
|
|
|
userInfoMap := commonus.MapOut() |
|
|
|
|
|
userInfoMap["id"] = userConting.Id |
|
|
|
|
|
userInfoMap["number"] = userConting.Number |
|
|
|
|
|
userInfoMap["departmentid"] = userConting.DepartmentId |
|
|
|
|
|
userInfoMap["workshopid"] = userConting.WorkshopId |
|
|
|
|
|
userInfoMap["postid"] = userConting.PostId |
|
|
|
|
|
userInfoMap["key"] = userConting.Key |
|
|
|
|
|
userInfoMap["group"] = userConting.Group |
|
|
|
|
|
userInfoMap["tema"] = userConting.Tema |
|
|
|
|
|
userInfoMap["workwechatid"] = userConting.WorkWechatId |
|
|
|
|
|
userInfoMap["wechatid"] = userConting.WechatId |
|
|
|
|
|
userInfoMap["name"] = userConting.Name |
|
|
|
|
|
userInfoMap["nickname"] = userConting.NickName |
|
|
|
|
|
|
|
|
|
|
|
redisUserClient := redishandel.RunRedis() |
|
|
|
|
|
redisUserClient.SetRedisTime(0) |
|
|
|
|
|
redisKeyMap := fmt.Sprintf("system:userContent_%v_%v", global.GVA_CONFIG.RedisPrefix.Alias, userInfo.Key) |
|
|
|
|
|
redisUserClient.HashMsetAdd(redisKeyMap, userInfoMap) |
|
|
|
|
|
response.Result(0, saveData, "登录成功!", c) |
|
|
|
|
|
} |
|
|
|