Minimalistic Frontegg OAuth implementation for browser applications. It offers APIs for retrieving and refreshing tokens and basic user data.
This package is an alternative to the official @frontegg/js package.
Use the package manager npm to install the library.
npm install @lokalise/frontegg-oauth-client
The library offers several APIs to initiate the OAuth flow and retrieve user data.
// Create client instance
const client = new FronteggOAuthClient({
baseUrl: 'https://frontegg-custom-url.com',
clientId: 'CLIENT_ID',
redirectUri: `${window.location.origin}/oauth/callback`,
logoutRedirectUri: window.location.origin,
})
try {
// Retrieve user
const user = await client.getUserData();
// Retrieve token
const accessToken = user.accessToken;
} catch (error) {
// In case we receive a 401 Unauthorized error, we need to redirect the user to the login page.
if (error instanceof FronteggError && error.status === 401) {
// Retrieve login URL
const loginUrl = await client.getOAuthLoginUrl()
// Redirect to Frontegg login page
window.location.href = loginUrl;
return;
}
// Rethrow unknown error.
throw error
}
You also need to set up the OAuth callback path in your browser app. For that, we use the same client instance as in the code above.
// OAuth callback app - usually /oauth/callback URL
const handleRequest = async (request: Request) => {
const oauthCode = new URL(request.url).searchParams.get('code')
if (!oauthCode) {
throw new Error('Missing oauth code');
}
// After successful login, the client can retrieve
// the access token through the OAuth code.
await client.fetchAccessTokenByOAuthCode(oauthCode)
// Redirect the user to the main app
window.location.href = '/';
}
This library is brought to you by a joint effort of Lokalise engineers: