Browse Source

华为一键登陆加密sign

jianghan 5 ngày trước cách đây
mục cha
commit
58c10e9eb7
2 tập tin đã thay đổi với 46 bổ sung4 xóa
  1. 41 2
      common/src/qfw/util/jy/appToken.go
  2. 5 2
      go.mod

+ 41 - 2
common/src/qfw/util/jy/appToken.go

@@ -1,14 +1,14 @@
 package jy
 
 import (
+	qutil "app.yhyue.com/moapp/jybase/common"
 	"encoding/base64"
 	"encoding/json"
 	"fmt"
-	qutil "app.yhyue.com/moapp/jybase/common"
 	"strings"
 )
 
-//用户信息
+// 用户信息
 type WxUserInfo struct {
 	City         string `json:"city"`
 	Country      string `json:"country"`
@@ -51,3 +51,42 @@ func GetMsgFromWxSign(sign string) (wxinfo *WxUserInfo, err error) {
 	}
 	return
 }
+
+type HwUserInfo struct {
+	CreateTime   int64  `json:"createtime"`
+	HeadImageUrl string `json:"headimgurl"`
+	Nickname     string `json:"nickname"`
+	OpenId       string `json:"openid"`
+	Sign         string `json:"sign"`
+	UnionId      string `json:"unionid"`
+}
+
+func GetMsgFromHwSign(sign string) (info *HwUserInfo, err error) {
+	info = &HwUserInfo{}
+	if sign == "" {
+		err = fmt.Errorf("获取信息异常,参数为空")
+		return
+	}
+	b, decodeErr := base64.StdEncoding.DecodeString(strings.Replace(sign, " ", "+", -1))
+	if decodeErr != nil {
+		err = fmt.Errorf("获取信息异常,解密失败")
+		return
+	}
+	UnmarshalErr := json.Unmarshal(b, &info)
+	if UnmarshalErr != nil {
+		err = fmt.Errorf("获取信息异常,格式异常")
+		return
+	}
+	//做比对,防篡改
+	checkSign := qutil.GetMd5String(fmt.Sprintf("createtime=%d&headimgurl=%s&nickname=%s&openid=%s&unionid=%s",
+		info.CreateTime, info.HeadImageUrl, info.Nickname, info.OpenId, info.UnionId))
+	if info.Sign != checkSign {
+		err = fmt.Errorf("获取信息异常,校验错误")
+		return
+	}
+	if info.OpenId == "" {
+		err = fmt.Errorf("获取信息异常,openid为空")
+		return
+	}
+	return
+}

+ 5 - 2
go.mod

@@ -1,12 +1,13 @@
 module app.yhyue.com/moapp/jypkg
 
-go 1.20
+go 1.21
+
+toolchain go1.23.6
 
 require (
 	app.yhyue.com/moapp/jyMarketing v0.0.2-0.20230304035551-21bb1eedf547
 	app.yhyue.com/moapp/jyPoints v1.1.2-0.20231020023521-1a4b1bbf9736
 	app.yhyue.com/moapp/jybase v0.0.0-20250219114929-2abd3672b53b
-	app.yhyue.com/moapp/message v0.0.0-20231204024949-8c7145bfc161
 	bp.jydev.jianyu360.cn/BaseService/entManageApplication v0.0.0-20231226074509-942d80dc34eb
 	bp.jydev.jianyu360.cn/BaseService/jyMicroservices v0.0.2
 	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20241213060113-ac41966a58ec
@@ -129,3 +130,5 @@ require (
 	sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
 	sigs.k8s.io/yaml v1.3.0 // indirect
 )
+
+replace github.com/go-xorm/xorm v0.7.9 => gitea.com/xorm/xorm v0.7.9