Эх сурвалжийг харах

Merge branch 'dev/v4.8.52_dx' of qmx/jy into feature/v4.8.52

duxin 1 жил өмнө
parent
commit
32b4e6b817

+ 22 - 15
src/jfw/filter/anonymousUser.go

@@ -18,6 +18,14 @@ import (
 	"time"
 )
 
+type AnonymousAuth struct {
+	W          http.ResponseWriter
+	R          *http.Request
+	Session    *httpsession.Session
+	GetSession map[string]interface{}
+	SetSession map[string]interface{}
+}
+
 func initPrivatePublicKey() {
 	// 读取私钥文件
 	privateKeyBytes, err := ioutil.ReadFile("rsa_private_key.pem")
@@ -78,17 +86,17 @@ func initPrivatePublicKey() {
 	PublicKey = rsaPublicKey
 }
 
-func AnonymousAuthentication(W http.ResponseWriter, R *http.Request, Session *httpsession.Session) {
-	anonymousEid := Session.Get("anonymousEid")
-	if anonymousEid != nil && anonymousEid != "" {
+func (sk *AnonymousAuth) Do() {
+	anonymousFid := sk.GetSession["anonymousFid"]
+	if anonymousFid != nil && anonymousFid != "" {
 		return
 	}
-	fid, err := R.Cookie("fid")
+	fid, err := sk.R.Cookie("fid")
 	if err != nil {
 		log.Println("匿名用户获取fid失败", err.Error())
 		return
 	}
-	eid, err := R.Cookie("eid")
+	eid, err := sk.R.Cookie("eid")
 	if err != nil {
 		log.Println("匿名用户获取eid失败", err.Error())
 		return
@@ -103,23 +111,22 @@ func AnonymousAuthentication(W http.ResponseWriter, R *http.Request, Session *ht
 			log.Printf("匿名用户身份验证不通过,eid:%s,fid:%s,eData:%s", eid.Value, fid.Value, eData)
 			return
 		}
-		Session.Set("anonymousEid", eid.Value)
+		sk.Session.Set("anonymousFid", fid.Value)
 		//未登录用户增加匿名身份信息
-		if Session.Get("mgoUserId") == nil || Session.Get("mgoUserId") == "" {
-			log.Println("未登录用户增加匿名身份信息")
-			agent := R.Header.Get("user-agent")
-			md, _ := json.Marshal(R.Form)
+		if sk.GetSession["mgoUserId"] == nil || sk.GetSession["mgoUserId"] == "" {
+			agent := sk.R.Header.Get("user-agent")
+			md, _ := json.Marshal(sk.R.Form)
 			str := string(md)
 			data := map[string]interface{}{
-				"ip":            util.GetIp(R),
+				"ip":            util.GetIp(sk.R),
 				"client":        agent,
 				"os":            util.GetOS(agent),
 				"browse":        util.GetBrowse(agent),
-				"fid":           fid,
-				"url":           R.RequestURI,
+				"fid":           fid.Value,
+				"url":           sk.R.RequestURI,
 				"mdescribe":     str,
-				"refer":         R.Referer(),
-				"method":        R.Method,
+				"refer":         sk.R.Referer(),
+				"method":        sk.R.Method,
 				"creation_time": time.Now().Unix(),
 			}
 			public.BaseMysql.Insert("anonymous_identity", data)

+ 2 - 1
src/jfw/filter/filter.go

@@ -53,7 +53,8 @@ func (f *Filter) Do(w http.ResponseWriter, r *http.Request) bool {
 	if getSession["base_user_id"] != nil && getSession["positionId"] == nil {
 		identity.SwitchToBest(util.Int64All(getSession["base_user_id"]), session, Middleground, &public.MQFW, false)
 	}
-	go AnonymousAuthentication(w, r, session)
+	(&AnonymousAuth{w, r, session, getSession, make(map[string]interface{})}).Do()
+
 	if !(&logFilter{w, r, session, getSession, make(map[string]interface{})}).Do() {
 		return false
 	}