Auth0Login
Goal
This library implements a simple, lightweight and opinionated client for Code+PKCE. It's a work in progress.
To simplify the usage of the OAuth 2.0 Implicit Flow, the library will:
- Get a new access_token when requested using
response_mode=web_message
(you can use custom audiences and scopes) - Hide the
response_type
parameter. - Always force scope =
openid profile email
, allowing users to add more scopes if needed. - Automatically manage
state
cdn link
https://unpkg.com/@auth0/auth0-login/dist/auth0-login.production.js
$(async () => {
var auth0 = new Auth0Login({
domain: 'auth.brucke.club',
client_id: 'wLSIP47wM39wKdDmOj6Zb5eSEw3JVhVp'
});
try {
await auth0.init();
} catch (error) {
console.log(error);
}
$('#login_redirect').click(async () => {
await auth0.loginWithRedirect({
redirect_uri: 'http://localhost:3000/'
});
});
$('#login_popup').click(async () => {
await auth0.loginWithPopup();
});
$('#login_redirect_callback').click(async () => {
await auth0.handleRedirectCallback();
});
$('#getToken').click(async () => {
const token = await auth0.getTokenSilently();
console.log(token);
});
$('#getTokenPopup').click(async () => {
const token = await auth0.getTokenWithPopup({
audience: 'https://brucke.auth0.com/api/v2/',
scope: 'read:rules'
});
console.log(token);
});
$('#getUser').click(async () => {
const user = await auth0.getUser();
console.log(user);
});
$('#getToken_audience').click(async () => {
const differentAudienceOptions = {
audience: 'https://brucke.auth0.com/api/v2/',
scope: 'read:rules'
};
const token = await auth0.getTokenSilently(differentAudienceOptions);
});
$('#logout').click(async () => {
auth0.logout({
client_id: 'wLSIP47wM39wKdDmOj6Zb5eSEw3JVhVp',
returnTo: 'http://localhost:3000/'
});
});
});
running the project
yarn install
yarn dev