From 564a2ee14ad84a28678e549b2b98719484d6451b Mon Sep 17 00:00:00 2001 From: mklee Date: Thu, 25 Jan 2024 17:08:51 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=9D=B4=EB=AF=BC=EA=B6=8C]=20=EA=B3=84?= =?UTF-8?q?=EC=A0=95=20=EC=82=AD=EC=A0=9C=20-=20=EB=B2=84=EA=B7=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/service.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/core/service.go b/core/service.go index 2ac5725..94401e0 100644 --- a/core/service.go +++ b/core/service.go @@ -835,6 +835,28 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) logger.Println("session updated :", authtype, uid, session) + authInfo := sh.auths.Find(session) + if authInfo == nil { + // 잘못된 세션 + logger.Println("authorize failed. fail to find authInfo :", session) + w.WriteHeader(http.StatusBadRequest) + return + } + + //혹시 삭제 된 계정 아닌지 확인해본다. + link, err := sh.mongoClient.FindOne(CollectionLink, bson.M{ + "platform": authtype, + "uid": uid, + }, options.FindOne().SetProjection(bson.M{ + "_ts": 1, + })) + if link["_ts"] != nil { + delts := link["_ts"].(primitive.DateTime) + if !delts.Time().IsZero() { + // 삭제된 계정. 삭제 되었다고 알려주자 + w.Header().Add("MG-ACCOUNT-DELETED", "TRUE") + } + } bt, _ := json.Marshal(output) w.Write(bt) } else { @@ -887,6 +909,7 @@ func (sh *serviceDescription) delacc(w http.ResponseWriter, r *http.Request) { return } + originAuthType := sType sType, sId, err := sh.getProviderInfo(sType, sId) if err != nil { logger.Error("delacc failed. getProviderInfo err :", err) @@ -924,7 +947,7 @@ func (sh *serviceDescription) delacc(w http.ResponseWriter, r *http.Request) { "$set": primitive.M{"_ts": curtime}, } - if sType == AuthPlatformFirebaseAuth { + if originAuthType == AuthPlatformFirebaseAuth { sh.mongoClient.Delete(CollectionFirebaseUserInfo, bson.M{ "firebaseuserid": sId, })