UNPKG

tripledoc

Version:

Library to read, create and update documents on a Solid Pod

39 lines (29 loc) 1.85 kB
--- id: 1-authentication title: Step 1: Identifying the user --- The starting point for any Solid Web App is to obtain the user's _WebID_. The WebID is a URL at which one can find information about the user, and where to read or write data. The WebID will be provided by the user's _Identity Provider_ (which is usually their Pod Provider), but any interaction with a user's Pod will require explicit permission to be granted by the Pod owner. To obtain this permission, we will be using [solid-auth-client](https://www.npmjs.com/package/solid-auth-client). Its usage is relatively straightforward: 1. Check if the user has already logged in. 2. If not, ask the user for their Identity Provider. 3. Then call `auth.login()` with the Identity Provider as the first argument. You can ask the user for their Identity Provider using a regular `<input type="url">`, or using [a convenience library](https://www.npmjs.com/package/@solid/react/) that suggests the most commonly used Providers — at the time of writing, [solid.community](https://solid.community/) and [inrupt.net](https://inrupt.net/). In code, that process would look roughly as follows: ```typescript import auth from 'solid-auth-client'; async function getWebId() { /* 1. Check if we've already got the user's WebID and access to their Pod: */ let session = await auth.currentSession(); if (session) { return session.webId; } /* 2. User has not logged in; ask for their Identity Provider: */ // Implement `getIdentityProvider` to get a string with the user's Identity Provider (e.g. // `https://inrupt.net` or `https://solid.community`) using a method of your choice. const identityProvider = await getIdentityProvider(); /* 3. Initiate the login process - this will redirect the user to their Identity Provider: */ auth.login(identityProvider); } ```