A deployable markdown editor that connects with your self hosted files and lets you edit in a beautiful interface

Add extensive logging for OAuth token debugging

- Log access token presence and length after FetchUser
- Log token details before SaveAuthToken
- Make SaveAuthToken failure a critical error that stops the flow
- Capture access token from Authorize call
- Use access token from Authorize if not present in gothUser
- This will help diagnose why tokens aren't being saved

+21 -2
+21 -2
backend/internal/api/handlers/auth.go
··· 118 118 119 119 // Get user data from GitHub 120 120 params := r.URL.Query() 121 - _, err = sess.Authorize(provider, params) 121 + accessToken, err := sess.Authorize(provider, params) 122 122 if err != nil { 123 123 log.Printf("Failed to authorize session: %v", err) 124 124 http.Redirect(w, r, "http://localhost:4321/?error=authorization_failed", http.StatusTemporaryRedirect) 125 125 return 126 126 } 127 + 128 + log.Printf("Session authorized, access token: %s...", accessToken[:min(10, len(accessToken))]) 127 129 128 130 // Fetch user details 129 131 gothUser, err := provider.FetchUser(sess) ··· 134 136 } 135 137 136 138 log.Printf("OAuth successful for user: %s", gothUser.NickName) 139 + log.Printf("Access token present in gothUser: %v (length: %d)", gothUser.AccessToken != "", len(gothUser.AccessToken)) 140 + log.Printf("Refresh token present: %v", gothUser.RefreshToken != "") 141 + 142 + // If access token is empty in gothUser, use the one from Authorize 143 + if gothUser.AccessToken == "" && accessToken != "" { 144 + log.Printf("Using access token from Authorize call") 145 + gothUser.AccessToken = accessToken 146 + } 137 147 138 148 // Create or update user in database 139 149 user := &database.User{ ··· 163 173 ExpiresAt: gothUser.ExpiresAt, 164 174 } 165 175 176 + log.Printf("Attempting to save token for user %d: token=%s..., refresh=%v", 177 + user.ID, 178 + token.AccessToken[:min(10, len(token.AccessToken))], 179 + token.RefreshToken != "") 180 + 166 181 if err := h.db.SaveAuthToken(token); err != nil { 167 - log.Printf("Failed to save token: %v", err) 182 + log.Printf("CRITICAL: Failed to save token for user %d: %v", user.ID, err) 183 + http.Error(w, "Failed to save authentication token", http.StatusInternalServerError) 184 + return 168 185 } 186 + 187 + log.Printf("Successfully saved token for user %d", user.ID) 169 188 170 189 // Create session 171 190 session, err := auth.GetSession(r)