@doneisbetter/sso
Version:
A secure, privacy-focused SSO solution with ephemeral token handling
113 lines (83 loc) • 3.37 kB
Markdown
# @doneisbetter/sso

[](https://www.npmjs.com/package/@doneisbetter/sso)
[](https://opensource.org/licenses/MIT)
A secure, privacy-focused SSO solution with ephemeral token handling and OAuth2 support.
## Features
- 🔐 Secure token-based authentication
- 🚀 Enhanced TypeScript module system
- 📱 Mobile-first responsive design
- ⚡ Reliable build pipeline
- 🔄 MongoDB integration
- 🛡️ Rate limiting and request logging
- 📖 Comprehensive documentation
- 🔒 Privacy-first with minimal data collection
- ⏱️ Short-lived JWT tokens
- 🎨 TailwindCSS styling
## Quick Start
```bash
# Install the package
npm install @doneisbetter/sso
# Set required environment variables
export MONGODB_URI="your_mongodb_uri"
export JWT_SECRET="your_jwt_secret"
export NEXT_PUBLIC_DEFAULT_API_KEY="your_api_key"
# Start development server
npm run dev
```
## Documentation
- [Integration Guide](/docs/integration) - How to integrate SSO into your application
- [API Reference](/docs/sso/api-reference.md) - API endpoints and usage
- [OAuth2 Guide](/docs/sso/oauth2-guide.md) - OAuth2 integration with NextAuth.js
- [Architecture Overview](/ARCHITECTURE.md) - System design and components
## Identity Profiles
Each user automatically receives a customizable identity profile with:
- Unique gametag
- Custom emoji (from predefined set)
- Theme color (from design system)
## Project Documentation
- [Architecture](ARCHITECTURE.md) - System design and components
- [Release Notes](RELEASE_NOTES.md) - Version history and changes
- [Roadmap](ROADMAP.md) - Future development plans
- [Task List](TASKLIST.md) - Current development tasks
- [Learnings](LEARNINGS.md) - Development insights and solutions
## Environment Variables
### SSO Base URL Configuration
The system now features a fully dynamic URL handling system:
- In development:
- URLs are automatically detected from incoming requests
- Port numbers are synchronized across the OAuth flow
- OAuth client configuration is automatically managed
- Zero manual configuration required
- In production:
- Set `SSO_BASE_URL` to your hosted SSO service URL (e.g., https://sso.doneisbetter.com)
- OAuth client configuration is managed through the admin interface
This enhanced configuration ensures:
- Automatic environment detection and configuration
- Consistent port usage throughout the authentication flow
- Zero-configuration setup for local development
- Proper routing in all environments
- Reliable OAuth callback handling
```env
# Required
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
NEXT_PUBLIC_DEFAULT_API_KEY=your_api_key
# Production Only - SSO Configuration
SSO_BASE_URL=https://sso.doneisbetter.com # Only required in production
# Optional - OAuth2 Configuration
OAUTH_CLIENT_ID=your_oauth_client_id
OAUTH_CLIENT_SECRET=your_oauth_client_secret
OAUTH_REDIRECT_URI=your_oauth_redirect_uri
```
## Tech Stack
- Next.js 15.3.5
- TypeScript 5.8.3
- MongoDB
- TailwindCSS
- JWT Authentication
- OAuth2
## Production Deployment
The service is deployed at [https://sso.doneisbetter.com](https://sso.doneisbetter.com)
## License
MIT © Done is Better