A TypeScript library for performing OAuth2 login to a Resonant server.
npm install @resonant/oauth-clientA TypeScript library for performing OAuth login to a Resonant server.
``bash`
npm install @resonant/oauth-client
* Instantiate an OauthClient with your application-specific configuration:`
typescript
import OauthClient from '@resonant/oauth-client';
const oauthClient = new OauthClient(
new URL(process.env.OAUTH_API_ROOT), // e.g. 'http://localhost:8000/oauth/'
process.env.OAUTH_CLIENT_ID, // e.g. 'Qir0Aq7AKIsAkMDLQe9MEfORbHEBKsViNhAKJf1A'
);
`
* Call redirectToLogin when it's time to start a login flow:`
typescript`
document.querySelector('#sign-in-link').addEventListener('click', async (event) => {
event.preventDefault();
await oauthClient.redirectToLogin();
// This will redirect away from the current page
});
At the start of every* page load, unconditionally call maybeRestoreLogin, to attempt toauthHeaders
restore a login state; this will no-op if no login is present. Afterwards, get and store HTTP
headers for authentication from .`
typescript`
await oauthClient.maybeRestoreLogin();
const { authHeaders } = oauthClient;
* Include these headers with every Ajax API request:
`typescript`
fetch('http://localhost:8000/api/files', {
headers: authHeaders,
});
* The login state will persist across page refreshes. Call logout to clear any active login:`
typescript`
document.querySelector('#sign-out-link').addEventListener('click', async (event) => {
event.preventDefault();
await oauthClient.logout()
authHeaders = oauthClient.authHeaders;
});
bash
From the root of the repository
npm install
npm run watch
`
In another terminal:
`bash
From the root of the repository
cd example
npm install
npm run serve
``