Skip to content

Social Authentication with GitHub & Google OAuth

Choose a tag to compare

@yash-pouranik yash-pouranik released this 06 Apr 19:42
· 975 commits to main since this release

Release Date: April 6, 2026

πŸŽ‰ Highlights

This release introduces Social Authentication with GitHub and Google OAuth support, along with security hardening and accessibility improvements.


✨ New Features

Social Authentication

  • feat: add GitHub and Google social auth support
    • OAuth 2.0 integration with GitHub and Google providers
    • Secure token exchange flow with one-time rtCode mechanism
    • Automatic account linking when provider email matches existing user
    • Provider callback URLs auto-generated (read-only in dashboard)
    • Encrypted storage for OAuth client secrets

Accessibility

  • Added Aria Labels for buttons in CollectionsTable.jsx and DatabaseSidebar.jsx
    • Improved screen reader support for dashboard components

πŸ”’ Security Fixes

Social Auth Hardening

  • P1: siteUrl required before enabling OAuth

    • Projects must configure Site URL before enabling social auth providers
    • Prevents token redirect to fallback/wrong URLs
  • P1: Email collision protection

    • Social login now rejects if email exists but provider email is unverified
    • Prevents duplicate accounts and potential account takeover
  • P2: OAuth error forwarding

    • Provider errors (user cancel, OAuth failures) now redirect to frontend callback with ?error=...
    • Frontend can display proper error messages instead of raw JSON
  • P3: Exchange endpoint protection

    • /api/userAuth/social/exchange now requires API key verification
    • Enforces project boundary on the most sensitive token exchange step

πŸ“š Documentation

  • Updated docs/authentication.md with social auth setup guide
  • Updated docs/api-reference.md with new social auth endpoints
  • Added examples/social-demo/ with working GitHub/Google OAuth example

πŸ§ͺ Testing

  • 66 tests passing in public-api
  • New tests for:
    • Provider error forwarding
    • Email collision handling
    • Account linking with verified emails

⚠️ Breaking Changes

None


πŸ”„ Migration Guide

No migration required. New social auth features are opt-in via dashboard configuration.

To enable social auth:

  1. Configure Site URL in Project Settings
  2. Go to Auth β†’ Social Auth section
  3. Add GitHub/Google OAuth credentials
  4. Enable the provider

@aryansinha1908 - Arial Labels Across Database.jsx (#76)
@Nitin-kumar-yadav1307 - feat: standardize API response format across both apps (#66 )
@yash-pouranik - Social Auth (#81 )