Launchpad Overview
The Launchpad is a user-facing application portal where users can discover and access all S-Auth applications with single sign-on.
Features
- Application Discovery - See all available applications in one place
- Single Sign-On - Launch apps without re-entering credentials
- Silent Authentication - Skip consent for previously authorized apps
- Public Apps - Access company-wide applications
- Personal Apps - See apps you've previously authorized
Access
The Launchpad is available at:
- Production: https://launchpad.sebbyk.net
- Local Development: http://localhost:3001
How It Works
┌────────────────────────────────────────────────────────────────┐
│ Launchpad │
├────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 📊 │ │ 📧 │ │ 📁 │ │ 🎮 │ │
│ │Dashboard│ │ Email │ │ Files │ │ Games │ │
│ │ │ │ │ │ │ │ │ │
│ │ Public │ │ Public │ │Authorized│ │Authorized│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ Click any app to launch with SSO │
│ │
└────────────────────────────────────────────────────────────────┘
Application Types
Public Applications
- Visible to all logged-in users
- Marked with "Public" badge
- Set by admin in application settings
Authorized Applications
- Apps you've previously consented to
- Marked with "Authorized" badge
- Launches with silent authentication (no consent screen)
Single Sign-On Flow
When you click an application:
-
First Time:
- Redirect to S-Auth
- Show consent screen
- Grant permissions
- Redirect to app
-
After Authorization:
- Redirect to S-Auth
- Skip consent (silent auth)
- Immediately redirect to app
Authentication
Users must log in to Launchpad to see applications:
- Visit the Launchpad URL
- Click "Login" or get redirected automatically
- Enter S-Auth credentials
- View available applications
Technical Details
The Launchpad is built with:
- Next.js 14 with App Router
- NextAuth.js for OAuth authentication
- Tailwind CSS for styling
- S-Auth API for application data
Configuration
Environment variables required:
# OAuth Provider connection
NEXT_PUBLIC_OAUTH_PROVIDER_URL=https://auth.sebbyk.net
OAUTH_CLIENT_ID=launchpad
OAUTH_CLIENT_SECRET=your-client-secret
OAUTH_REDIRECT_URI=https://launchpad.sebbyk.net/callback
# NextAuth configuration
NEXTAUTH_SECRET=your-nextauth-secret
NEXTAUTH_URL=https://launchpad.sebbyk.net
API Endpoint
The Launchpad fetches application data from:
GET /api/user/applications
Authorization: Bearer <access_token>
Returns:
[
{
"client_id": "my-app",
"name": "My Application",
"description": "A useful app",
"logo_emoji": "📊",
"is_public": true,
"is_authorized": true,
"redirect_uri": "https://myapp.com/callback"
}
]