feat: implement GitHub OIDC authentication

- Add GitHub OAuth 2.0 authentication flow
- Create authentication routes: /auth/login, /auth/callback, /auth/logout
- Implement OAuth server utilities with proper session management
- Add authentication hooks and client-side state management
- Update header with login/logout controls and user menu
- Create user profile page with GitHub integration
- Add environment variables for GitHub OAuth configuration
- Include comprehensive documentation for setup and usage
- Enhance profile store with authentication state
- Add authentication status API endpoint

Closes: GitHub authentication implementation
This commit is contained in:
Nirmal Arya
2025-05-31 15:40:32 -04:00
parent e0eb402a85
commit 1687d812bf
12 changed files with 1961 additions and 17 deletions

View File

@@ -1,5 +1,24 @@
# Rename this file to .env once you have filled in the below environment variables!
# GitHub OAuth Authentication Configuration
# ---------------------------------------
# To set up GitHub OAuth:
# 1. Go to https://github.com/settings/developers
# 2. Click "New OAuth App"
# 3. Fill in the application details:
# - Application name: Buildify (or your preferred name)
# - Homepage URL: http://localhost:5173 (or your deployment URL)
# - Authorization callback URL: http://localhost:5173/auth/callback
# 4. Click "Register application"
# 5. Copy the Client ID and generate a new Client Secret
# 6. Paste them below
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
# Session Secret - Used to encrypt session cookies
# Generate a random string (e.g., using `openssl rand -hex 32` in terminal)
SESSION_SECRET=
# Get your GROQ API Key here -
# https://console.groq.com/keys
# You only need this environment variable set if you want to use Groq models