1 | # Solid JavaScript authentication for the browser - solid-client-authn-browser
|
2 |
|
3 | `solid-client-authn-browser` is a library designed to authenticate web apps (in the browser) with Solid identity servers.
|
4 | The main documentation is at the [root of the repository](https://github.com/inrupt/solid-client-authn-js).
|
5 |
|
6 | ## Required polyfills
|
7 |
|
8 | Our JavaScript Client Libraries use relatively modern JavaScript features that
|
9 | will work in all commonly used browsers, except Internet Explorer. However, one of
|
10 | the libraries we currently use expects some Node.js modules to be present, which must
|
11 | be polyfilled by the bundler. Here is the list of modules that need to be polyfilled:
|
12 | - `crypto`
|
13 | - `stream`
|
14 | - `util`
|
15 | - `buffer`
|
16 |
|
17 | Prior to Webpack version 5 these modules were polyfilled by default, but that is no longer the case.
|
18 | See
|
19 | [our Webpack configuration](https://github.com/inrupt/solid-client-authn-js/blob/master/packages/browser/webpack.common.js)
|
20 | for packages that can provide the necessary polyfills.
|
21 |
|
22 | ## Underlying libraries
|
23 |
|
24 | `solid-client-authn-browser` is based on [`oidc-client-js`](https://github.com/IdentityModel/oidc-client-js).
|
25 | However, the latter lacks some features that are necessary to provide the developer experience we specifically want for the Solid ecosystem, so we developed [`oidc-client-ext`](https://www.npmjs.com/package/@inrupt/oidc-client-ext) to add these features.
|
26 |
|
27 | # Other Inrupt Solid JavaScript Libraries
|
28 | [`@inrupt/solid-client-authn-browser`](https://www.npmjs.com/package/@inrupt/solid-client-authn-browser )is part of a family open source JavaScript libraries designed to support developers building Solid applications.
|
29 |
|
30 | ## Inrupt Solid JavaScript Client Libraries
|
31 |
|
32 | ### Data access and permissions management - solid-client
|
33 |
|
34 | [@inrupt/solid-client](https://docs.inrupt.com/client-libraries/solid-client-js/) allows developers to access data and manage permissions on data stored in Solid Pods.
|
35 |
|
36 | ### Authentication - solid-client-authn
|
37 |
|
38 | [@inrupt/solid-client-authn](https://github.com/inrupt/solid-client-authn) allows developers to authenticate against a Solid server. This is necessary when the resources on your Pod are not public.
|
39 |
|
40 | ### Vocabularies and interoperability - solid-common-vocab-rdf
|
41 |
|
42 | [@inrupt/solid-common-vocab-rdf](https://github.com/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.
|
43 |
|
44 | # Issues & Help
|
45 |
|
46 | ## Solid Community Forum
|
47 |
|
48 | If you have questions about working with Solid or just want to share what you’re working on, visit the [Solid forum](https://forum.solidproject.org/). The Solid forum is a good place to meet the rest of the community.
|
49 |
|
50 | ## Bugs and Feature Requests
|
51 |
|
52 | - For public feedback, bug reports, and feature requests please file an issue via [GitHub](https://github.com/inrupt/solid-client-authn/issues/).
|
53 | - For non-public feedback or support inquiries please use the [Inrupt Service Desk](https://inrupt.atlassian.net/servicedesk).
|
54 |
|
55 | ## Prerequisite
|
56 |
|
57 | The `solid-client-authn` libraries are compatible with [NSS](https://github.com/solid/node-solid-server/releases/tag/v5.3.0) 5.3.X and higher.
|
58 |
|
59 | ## Documentation
|
60 |
|
61 | - [Using this library from within the browser](https://docs.inrupt.com/developer-tools/javascript/client-libraries/tutorial/authenticate/)
|
62 | - [Inrupt documentation Homepage](https://docs.inrupt.com/)
|