Browse Source

驳回完成

qin_1
超级管理员 4 years ago
parent
commit
6cc600de1c
  1. 132
      gin_server_admin/api/v1/custom/customhandle.go
  2. 9
      gin_server_admin/api/v1/custom/customtype.go
  3. 3
      gin_server_admin/router/system/sys_base.go

132
gin_server_admin/api/v1/custom/customhandle.go

@ -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)
}

9
gin_server_admin/api/v1/custom/customtype.go

@ -5,3 +5,12 @@ import "github.com/mojocn/base64Captcha"
var store = base64Captcha.DefaultMemStore var store = base64Captcha.DefaultMemStore
type CustomHandle struct{} type CustomHandle struct{}
type getData struct {
Number string `json:"number"`
}
type oneLogin struct {
getData
Token string `json:"token"`
OpenId string `json:"openid"`
}

3
gin_server_admin/router/system/sys_base.go

@ -18,6 +18,9 @@ func (s *BaseRouter) InitBaseRouter(Router *gin.RouterGroup) (R gin.IRoutes) {
//自定义登录 //自定义登录
baseRouter.POST("mylogin", customApi.CustomLogin) baseRouter.POST("mylogin", customApi.CustomLogin)
baseRouter.POST("mysystemlogin", customApi.SystemLogin) baseRouter.POST("mysystemlogin", customApi.SystemLogin)
//Oauth2.0
baseRouter.POST("oauth2", customApi.OauthTwo)
baseRouter.POST("singlesignon", customApi.SingleSignOn) //单点登录
} }
return baseRouter return baseRouter
} }

Loading…
Cancel
Save