diff --git a/core/service.go b/core/service.go index 1389d95..0664cf9 100644 --- a/core/service.go +++ b/core/service.go @@ -533,6 +533,49 @@ func (sh *serviceDescription) linkinfo(w http.ResponseWriter, r *http.Request) { } +// == 계정 이메일 조회 +func (sh *serviceDescription) emailinfo(w http.ResponseWriter, r *http.Request) { + defer func() { + s := recover() + if s != nil { + logger.Error(s) + } + }() + + if r.Method != "GET" { + w.WriteHeader(http.StatusBadRequest) + return + } + + queryvals := r.URL.Query() + sk := queryvals.Get("sk") + + authInfo, err := sh.sessionProvider.Query(sk) + if err != nil { + logger.Println("sessionProvider.Query return err :", err) + w.WriteHeader(http.StatusInternalServerError) + return + } + + email := authInfo.Email + + if strings.HasPrefix(email, "__dummy_") && strings.HasSuffix(email, "temp__") { + email = "" + } + + if strings.HasSuffix(email, "@noauth.flag") || strings.HasSuffix(email, "@guest.flag") { + email = "" + } + + // fmt.Println("=================") + // fmt.Println(email) + // fmt.Println("=================") + //logger.Println("Email :", email) + + w.Write([]byte(fmt.Sprintf(`{"email":"%s"}`, email))) + +} + func (sh *serviceDescription) authorize_dev(w http.ResponseWriter, r *http.Request) { if r.Method == "DELETE" { sk := r.Header.Get("AS-X-SESSION") @@ -748,6 +791,8 @@ func (sh *serviceDescription) serveHTTP(w http.ResponseWriter, r *http.Request) sh.unlink(w, r) } else if strings.HasSuffix(r.URL.Path, "/linkinfo") { sh.linkinfo(w, r) + } else if strings.HasSuffix(r.URL.Path, "/emailinfo") { + sh.emailinfo(w, r) } else if strings.HasSuffix(r.URL.Path, "/divs") { // TODO : 세션키와 authtoken을 헤더로 받아서 accid 조회 queryvals := r.URL.Query()