diff --git a/core/maingate.go b/core/maingate.go index 055763b..784d4fe 100644 --- a/core/maingate.go +++ b/core/maingate.go @@ -36,7 +36,7 @@ import ( var devflag = flagx.Bool("dev", false, "") var noauth = flagx.Bool("noauth", false, "") -var authtype = flagx.String("auth", "", "yes|no|both") +var authtype = flagx.String("auth", "on", "on|off|both") var ( CollectionLink = gocommon.CollectionName("link") @@ -193,11 +193,11 @@ func New(ctx context.Context) (*Maingate, error) { return nil, err } - if *noauth && len(*authtype) == 0 { - *authtype = "no" + if len(*authtype) == 0 { + *authtype = "on" } - if *authtype == "yes" || *authtype == "both" { + if !*noauth && (*authtype == "on" || *authtype == "both") { if len(config.FirebaseAdminSDKCredentialFile) > 0 { opt := option.WithCredentialsFile(config.FirebaseAdminSDKCredentialFile) firebaseApp, err := firebase.NewApp(context.Background(), nil, opt) diff --git a/core/platformhybeim.go b/core/platformhybeim.go index 710cd31..a852bb4 100644 --- a/core/platformhybeim.go +++ b/core/platformhybeim.go @@ -56,11 +56,7 @@ func (mg *Maingate) platform_hybeim_authorize(w http.ResponseWriter, r *http.Req return } - if !*noauth { - err = authenticateHybeImUser(config.HybeImProjectIdstring, config.HybeImServiceIdstring, config.HybeImAccessKey, config.HybeImEndPoint, authinfo.UserHybeimid, authinfo.UserLoginVerifyToken) - } - - if err == nil { + if err = authenticateHybeImUser(config.HybeImProjectIdstring, config.HybeImServiceIdstring, config.HybeImAccessKey, config.HybeImEndPoint, authinfo.UserHybeimid, authinfo.UserLoginVerifyToken); err == nil { acceestoken_expire_time := time.Date(2999, 1, int(time.January), 0, 0, 0, 0, time.UTC).Unix() var info usertokeninfo diff --git a/core/platformsteam.go b/core/platformsteam.go index 4dfc2f7..66e5b5f 100644 --- a/core/platformsteam.go +++ b/core/platformsteam.go @@ -39,11 +39,7 @@ func (mg *Maingate) platform_steamsdk_authorize(w http.ResponseWriter, r *http.R return } - if !*noauth { - err = authenticateSteamUser(config.SteamPublisherAuthKey, config.SteamAppId, authinfo.UserSteamId, authinfo.UserAuthToken) - } - - if err == nil { + if err := authenticateSteamUser(config.SteamPublisherAuthKey, config.SteamAppId, authinfo.UserSteamId, authinfo.UserAuthToken); err == nil { acceestoken_expire_time := time.Date(2999, 1, int(time.January), 0, 0, 0, 0, time.UTC).Unix() var info usertokeninfo diff --git a/core/service.go b/core/service.go index d8638b7..c9b4647 100644 --- a/core/service.go +++ b/core/service.go @@ -653,7 +653,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) } queryvals := r.URL.Query() - authtype := queryvals.Get("type") + reqauthtype := queryvals.Get("type") uid := queryvals.Get("id") sk := queryvals.Get("sk") @@ -692,9 +692,8 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) } var email string - - if !*noauth { - if len(authtype) > 0 { + if !*noauth && (*authtype == "on" || *authtype == "both") { + if len(reqauthtype) > 0 { //email, err := sh.readProfile(authtype, uid, accesstoken) bfinfo, err := sh.getUserBrowserInfo(r) if err != nil { @@ -703,25 +702,25 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) return } - email, err = sh.readProfile(authtype, uid, bfinfo) + email, err = sh.readProfile(reqauthtype, uid, bfinfo) if err != nil { logger.Error("readProfile failed :", err) w.WriteHeader(http.StatusBadRequest) return } - newType, newId, err := sh.getProviderInfo(authtype, uid) + newType, newId, err := sh.getProviderInfo(reqauthtype, uid) if err != nil { logger.Error("getProviderInfo failed :", err) w.WriteHeader(http.StatusBadRequest) return } - if authtype != newType || uid != newId { - authtype = newType + if reqauthtype != newType || uid != newId { + reqauthtype = newType uid = newId } - } else if *devflag { + } else if *authtype == "both" { email = fmt.Sprintf("%s@guest.flag", uid) } else { // authtype이 없으면 입장 불가 @@ -736,7 +735,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) // platform + id -> account id createtime := primitive.NewDateTimeFromTime(time.Now().UTC()) link, err := sh.mongoClient.FindOneAndUpdate(CollectionLink, bson.M{ - "platform": authtype, + "platform": reqauthtype, "uid": uid, }, bson.M{ "$setOnInsert": bson.M{ @@ -780,7 +779,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) sk, err = sh.sessionProvider.New(&session.Authorization{ Account: accid, - Platform: authtype, + Platform: reqauthtype, Uid: uid, Email: email, }) @@ -796,7 +795,7 @@ func (sh *serviceDescription) authorize(w http.ResponseWriter, r *http.Request) "newAccount": newaccount, "accid": accid.Hex(), } - if *noauth { + if len(reqauthtype) == 0 { output["noauth"] = true }