This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to engineering@inrupt.com.
solid-client-authn
is a suite of libraries to manage the authentication required to access protected resources on Solid servers.
The libraries share a common API and include different modules for different deployment environments:
solid-client-authn-browser
can be used to build web apps in the browser.solid-client-authn-node
can be used to build server-side and console-based apps.
@inrupt/solid-client-authn libraries are part of a suite open source JavaScript libraries designed to support developers building Solid applications.
@inrupt/solid-client allows developers to access data and manage permissions on data stored in Solid Pods.
@inrupt/solid-client-authn allows developers to authenticate against a Solid server. This is necessary when the resources on your Pod are not public.
@inrupt/solid-common-vocab-rdf allows developers to build interoperable apps by reusing well-known vocabularies. These libraries provide vocabulary terms as constants that you just have to import.
Our JavaScript Client Libraries use relatively modern JavaScript, aligned with the ES2018 Specification features, we ship both ESM and CommonJS, with type definitions for TypeScript alongside.
This means that out of the box, we only support environments (browsers or runtimes) that were released after mid-2018, if you wish to target other (older) environments, then you will need to cross-compile our SDKs via the use of Babel, webpack, SWC, or similar.
If you need support for Internet Explorer, it is recommended to pass them
through a tool like Babel, and to add polyfills for e.g.
Map
, Set
, Promise
, Headers
, Array.prototype.includes
, Object.entries
and String.prototype.endsWith
.
Additionally, when using this package in an environment other than Node.js, you
will need a polyfill for Node's buffer
module.
Our JavaScript Client Libraries track Node.js LTS releases, and support 14.x, 16.x and 18.x.
For the latest stable version of solid-client-authn-browser:
npm install @inrupt/solid-client-authn-browser
For the latest stable version of solid-client-authn-node:
npm install @inrupt/solid-client-authn-node
For the latest stable version of all Inrupt Solid JavaScript libraries:
# For browser-based projects
npm install @inrupt/solid-client @inrupt/solid-client-authn-browser @inrupt/vocab-common-rdf
# For Node.js-based projects
npm install @inrupt/solid-client @inrupt/solid-client-authn-node @inrupt/vocab-common-rdf
If you have questions about working with Solid or just want to share what you’re working on, visit the Solid forum. The Solid forum is a good place to meet the rest of the community.
- For public feedback, bug reports, and feature requests please file an issue via GitHub.
- For non-public feedback or support inquiries please use the Inrupt Service Desk.
The solid-client-authn
libraries are compatible with NSS 5.3.X and higher.
- Using Inrupt Solid JavaScript Client Libraries to authenticate
- Inrupt documentation Homepage
- Architecture and design documentation
- Security policy and vulnerability reporting
git clone https://github.com/inrupt/solid-client-authn-js
cd solid-client-authn-js
npm ci
cd packages/browser/examples/single/bundle/
npm ci
npm run start
Go to http://localhost:3001/.
git clone https://github.com/inrupt/solid-client-authn-js
cd solid-client-authn-js
npm ci
cd packages/node/example/demoClientApp/
npm ci
npm run start
Go to http://localhost:3001/.
See the dedicated documentation.
Due to a behavior from jsdom, @inrupt/solid-client-authn-browser
needs some adjustments if you want to run it with jest
. There are multiple options, listed in a dedicated issue. Thanks to Angelo V. for proposing a mitigation.