Authentication
5Stack uses Steam OpenID for secure authentication. All players must link their Steam account to access platform features.How Steam Authentication Works
5Stack integrates with Steam’s authentication system to provide secure, seamless login without requiring separate credentials.Authentication Flow
- Click Sign In: Navigate to the login page and click the “Sign in through Steam” button
- Steam Authorization: You’ll be redirected to Steam’s official login page
- Grant Permission: Authorize 5Stack to access your public Steam profile
- Account Creation: Your account is automatically created on first login
- Redirect Back: You’re returned to 5Stack and logged in
Your Steam credentials are never stored or handled by 5Stack. Authentication is handled entirely by Steam’s secure OpenID protocol.
The Login Process
When you visit the login page, you’ll see a simple interface with the platform branding and a Steam login button:Login States
- Not Authenticated
- Authenticated
When you’re not logged in, you’ll see:
- Platform logo and branding
- “Sign in through Steam” button
- Optional footer with project links
User Roles
5Stack implements a hierarchical role system. Your role determines what features and actions you can access.User
Basic access - can play matches and join tournaments
Verified User
Enhanced privileges for verified community members
Streamer
Access to streaming features and broadcaster tools
Match Organizer
Can create and manage matches with moderation capabilities
Tournament Organizer
Full tournament creation and management permissions
Administrator
Complete platform access and system management
Role Hierarchy
Roles are hierarchical - higher roles inherit all permissions from lower roles:Authentication Store
The platform uses a Pinia store to manage authentication state across the application.Fetching Your Profile
When you log in, 5Stack:- Queries your profile from the GraphQL API
- Establishes WebSocket connection for real-time updates
- Subscribes to your data including matches, tournaments, and teams
- Loads role-specific features based on your permissions
Available Computed Properties
The auth store provides reactive properties you can use throughout the app:Session Management
Real-time Subscriptions
Once authenticated, the platform subscribes to your player data in real-time:- Your profile updates instantly when changed
- Match invites appear immediately
- Friend status changes are reflected in real-time
- Tournament notifications arrive without delay
WebSocket Connection
5Stack maintains a WebSocket connection for:- Match lobby communication
- Matchmaking queue updates
- Real-time chat messages
- Voice communication coordination
Discord Integration
5Stack supports optional Discord account linking for enhanced features:Linking Your Discord Account
- Navigate to your profile settings
- Click Link Discord Account
- Authorize 5Stack on Discord
- Your Discord account is now connected
Linking Discord enables tournament chat notifications, team coordination features, and Discord-based announcements.
Security Considerations
Session Storage
Session Storage
5Stack uses secure HTTP-only cookies for session management. Your session token is never exposed to JavaScript and is protected against XSS attacks.
Token Refresh
Token Refresh
Sessions are automatically refreshed in the background. You won’t be unexpectedly logged out during active use.
Logout
Logout
To log out, click your profile icon and select Logout. This invalidates your session on both client and server.
Troubleshooting
Can't log in?
Common solutions:
- Ensure you’re logged into Steam in your browser
- Check that cookies are enabled
- Try clearing your browser cache
- Disable ad blockers that might interfere with Steam OpenID
- Verify your Steam profile is set to public
Already logged in but can't access features?
Your role may not have permission for certain features. Contact an administrator if you believe your role should be updated.
Next Steps
Player Profiles
Customize your profile and track your stats
Matchmaking
Start playing competitive matches
Teams
Create or join a team