Quick Start Guide
Get up and running with RegardingWork Hub authentication in minutes
1. Authentication
Important: Hub authentication uses USERNAME for login, NOT email address. Email is only used for registration.
First, authenticate a user to get JWT tokens:
// Login to get JWT token
const response = await fetch('https://hub.regardingwork.com/api/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
username: 'your_username', // ← USERNAME (not email)
password: 'your_password'
})
});
const data = await response.json();
if (response.ok) {
localStorage.setItem('hub_access_token', data.access_token);
localStorage.setItem('hub_refresh_token', data.refresh_token);
console.log('Login successful:', data.user);
}
Response includes: access_token, refresh_token, and user profile data
2. Making Authenticated Requests
Use the access token for subsequent API calls:
// Get current user data
const token = localStorage.getItem('hub_access_token');
const response = await fetch('https://hub.regardingwork.com/api/auth/me', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
const userData = await response.json();
if (response.ok) {
console.log('User data:', userData.user);
} else {
console.error('Error:', userData.error);
}
3. Token Validation
Validate tokens from other RegardingWork services:
// Validate a token (server-side)
const validateToken = async (token) => {
const response = await fetch('https://hub.regardingwork.com/api/auth/validate', {
headers: {
'Authorization': `Bearer ${token}`
}
});
const result = await response.json();
return result.valid && result.user;
};
// Usage
if (await validateToken(userToken)) {
// Token is valid, user is authenticated
console.log('User authenticated');
} else {
// Token invalid, redirect to login
window.location.href = '/login';
}
4. Implementing SSO (Optional)
For seamless user experience, implement Single Sign-On:
<!-- Add this button instead of manual login form -->
<a href="https://hub.regardingwork.com/api/auth/sso/authorize?redirect_uri=https://yourapp.com/auth/callback&service=yourapp"
class="btn btn-primary btn-lg">
<i class="fas fa-shield-alt me-2"></i>
Login with RegardingWork Hub
</a>
Want full SSO implementation?
View the complete SSO integration guide
Error Handling
Handle common error scenarios:
const handleApiResponse = async (response) => {
const data = await response.json();
if (!response.ok) {
switch (response.status) {
case 401:
// Token expired or invalid
await refreshToken();
break;
case 403:
// User doesn't have permission
showError('Access denied');
break;
case 429:
// Rate limited
showError('Too many requests, please try again later');
break;
default:
showError(data.error || 'An error occurred');
}
return null;
}
return data;
};