@auth0/auth0-login

Simple implicit flow library for oidc compliant clients and Auth0

Usage no npm install needed!

<script type="module">
  import auth0Auth0Login from 'https://cdn.skypack.dev/@auth0/auth0-login';
</script>

README

CircleCI

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