npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@twinfinity/authentication

v4.4.0

Published

Twinfinity authentication

Downloads

41

Readme

Twinfinity Authentication

Twinfinity Authentication makes it possible to authenticate towards Twinfinity.

API

Twinfinity Session

Twinfinity Session is a high level API to authenticate users towards Twinfinity.

OpenID Connect Client

OpenID Connect Client is a lower level API to authenticate towards Twinfinity.

Best Practices

Neither Twinfinity Session nor OpenID Connect Client instances should be stored in such a way that they are easily accessed if possible. An instance of either can be used to make requests towards Twinfinity with the logged in users identity, so some care needs to be taken.

For the typical use case, when using @twinfinity/authentication with @twinfinity/core, the following pattern is suggested.

async function initializeBimApi() {
    // Establish a Twinfinity session
    const session = await TwinfinitySession({
        clientId: '<client-id>', // Client id is given by Twinfinity
        openIdProviderUrl: '<idp-url>'
    });
    // Add a listener that will notify you when the session is terminated. The session should
    // typically be automatically refreshed, but it is possible for it to break
    session.registerOnSessionTerminatedCallback(async () => {
        // Let the user know that the session has been terminated, perhaps through a modal window
        const modal = await showSessionTerminatedModal();
        // This will re-establish the session by redirecting the browser the same way as {@link establish} does.
        modal.button.onClick(async () => await session.reEstablish());
    });
    // Restore the original url from before the authentication flow began.
    session.recoveredApplicationState.restoreOriginalUrl();
    // Get the user's id_token
    const identityToken = await session.getIdentityToken();
    await showUserInfo(identityToken);

    // Use the session to create an authenticated BimApi instance
    return await BimApi.create('viewer', '<api-url>', {
        session
    });
}

window.onload(async () => {
    const bimApi = await initializeBimApi();
    // do stuff...
})