fix: P1-02 OAuth context propagation and P1-16 AuthProvider double-check

P1-02: OAuth ExchangeCode and GetUserInfo now accept context parameter
       to properly propagate request context to HTTP calls
P1-16: AuthProvider isAuthenticated now uses single source of truth
       (effectiveUser !== null) instead of double-checking both
       React state and module-level function
This commit is contained in:
2026-04-18 19:40:54 +08:00
parent e1e423008e
commit 61c19e54ac
5 changed files with 19 additions and 21 deletions

View File

@@ -949,12 +949,12 @@ func (s *AuthService) OAuthCallback(ctx context.Context, provider, code string)
}
oauthProvider := auth.OAuthProvider(strings.ToLower(strings.TrimSpace(provider)))
token, err := s.oauthManager.ExchangeCode(oauthProvider, strings.TrimSpace(code))
token, err := s.oauthManager.ExchangeCode(ctx, oauthProvider, strings.TrimSpace(code))
if err != nil {
return nil, err
}
oauthUser, err := s.oauthManager.GetUserInfo(oauthProvider, token)
oauthUser, err := s.oauthManager.GetUserInfo(ctx, oauthProvider, token)
if err != nil {
return nil, err
}
@@ -1127,12 +1127,12 @@ func (s *AuthService) OAuthBindCallback(ctx context.Context, userID int64, provi
}
oauthProvider := auth.OAuthProvider(strings.ToLower(strings.TrimSpace(provider)))
token, err := s.oauthManager.ExchangeCode(oauthProvider, strings.TrimSpace(code))
token, err := s.oauthManager.ExchangeCode(ctx, oauthProvider, strings.TrimSpace(code))
if err != nil {
return nil, err
}
oauthUser, err := s.oauthManager.GetUserInfo(oauthProvider, token)
oauthUser, err := s.oauthManager.GetUserInfo(ctx, oauthProvider, token)
if err != nil {
return nil, err
}