From 91cf7b94d2d4a43c66836ef3c2465edda65af1ae Mon Sep 17 00:00:00 2001 From: bagas Date: Thu, 2 May 2024 10:34:34 +0700 Subject: [PATCH 1/2] Fix client ip showing as cloudflare ip instead of user's real ip --- utils/utils.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/utils/utils.go b/utils/utils.go index 131dae7..8b1f3da 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -35,7 +35,11 @@ func init() { } func ClientIP(request *http.Request) string { - ip := request.Header.Get("X-Real-IP") + ip := request.Header.Get("Cf-Connecting-IP") + if ip != "" { + return ip + } + ip = request.Header.Get("X-Real-IP") if ip == "" { ip = request.Header.Get("X-Forwarded-For") if ip == "" { From 0768348240d81241bd13606ed67e5aa8e16c66bf Mon Sep 17 00:00:00 2001 From: Bagas Aulia Rezki Date: Thu, 2 May 2024 16:54:48 +0700 Subject: [PATCH 2/2] Invalidate user access token upon app login --- handler/auth/google/callback/callback.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/handler/auth/google/callback/callback.go b/handler/auth/google/callback/callback.go index 8b62297..d4a2cc3 100644 --- a/handler/auth/google/callback/callback.go +++ b/handler/auth/google/callback/callback.go @@ -126,6 +126,22 @@ func GET(w http.ResponseWriter, r *http.Request) { userInfoResp, err := client.Do(req) defer userInfoResp.Body.Close() + jsonData := map[string]string{ + "token": oauthData.AccessToken, + } + + requestBody, err := json.Marshal(jsonData) + + response, err := http.Post("https://oauth2.googleapis.com/revoke", "application/json", bytes.NewBuffer(requestBody)) + if err != nil { + log.Error("Error revoking access token: ", err) + } + defer response.Body.Close() + + if response.StatusCode != http.StatusOK { + log.Error("Error revoking access token: ", response.StatusCode) + } + var oauthUser OauthUser if err := json.NewDecoder(userInfoResp.Body).Decode(&oauthUser); err != nil { log.Error("Error reading user info response body:", err)