1.1.1 • Published 1 year ago

solid-node-interactive-auth v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Interactive Solid authentication in Node.js

Build status Coverage Status npm version

Easily authenticate Node.js apps with Solid identity servers by opening the user's Web browser.

Internally, this tool will setup a temporary Web server on the localhost to allow authentication data to be handled easily and safely.

This is to be used as a tool next to @inrupt/solid-client-authn-node.

Try out how it works

To see how the interactive authentication works for the end-user, you can run this command:

$ npx solid-node-interactive-auth https://solidcommunity.net/

Logged in as https://<MY USERNAME>.solidcommunity.net/profile/card#me

You can replace https://solidcommunity.net/ with the identity provider you want to authenticate with.

Installation

$ npm install solid-node-interactive-auth

or

$ yarn add solid-node-interactive-auth

This tool requires @inrupt/solid-client-authn-node as a peer dependency:

$ npm install @inrupt/solid-client-authn-node

or

$ yarn add @inrupt/solid-client-authn-node

Usage

The following code will trigger the user's Web browser to be opened to trigger the login sequence:

import { Session } from '@inrupt/solid-client-authn-node';
import { interactiveLogin } from 'solid-node-interactive-auth';

(async function() {
  // Create a new session and log in by opening the Web browser
  const session = new Session();
  await interactiveLogin({
    session,
    oidcIssuer: 'https://solidcommunity.net/',
  });

  // Perform operations with this session
  // such as session.fetch()

  // Log out once you're done (avoids hanging Node.js process)
  await session.logout();
})();

If you don't have any specific needs for the Session object, you can also just let this tool create one for you:

const session = await interactiveLogin({
  oidcIssuer: 'https://solidcommunity.net/',
});

License

This software is written by Ruben Taelman.

This code is released under the MIT license.