Awesome
solid-signup
WebID signup application for Solid servers.
App configuration
In order to use the signup app, you must first configure it to point to a server on which the accounts will be created. You can specify the server by edititing the configuration area in app.js
. For example, the following constants can be set there:
var DOMAIN = 'https://databox.me';
var ACCOUNT_ENDPOINT = ',system/newAccount';
var CERT_ENDPOINT = ',system/newCert';
The value of DOMAIN
sets the base URL for the new accounts, where new accounts will be subdomains -- i.e. https://alice.databox.me
.
The value of DOMAIN
can also be overridden without editing the app.js
file, by adding a URL query parameter called domain
when loading the app. For example, to override the default domain of the signup app and point to https://example.org
, a user can click on the following link:
https://solid.github.io/solid-signup/?domain=https%3A%2F%2Fexample.org
The ACCOUNT_ENDPOINT
and CERT_ENDPOINT
values will be appended to the final URI of the user's new account. If your server does not use ACCOUNT_ENDPOINT or CERT_ENDPOINT paths, please set them to an empty value.
App workflow
-
If the user wants to use
alice
to sign up, the app will check if the accounthttps://alice.databox.me/
exists. It checks this by doing an HTTP GET onhttps://alice.databox.me/
, using the value ofDOMAIN
to create the URL. If anHTTP 404
status is returned, the app will prompt the user to create that account. -
If the user proceeds with the account creation, an HTTP POST request will be sent to the account URL, while also appending the
ACCOUNT_ENDPOINT
value. In this case, the resulting URL will behttps://alice.databox.me/,system/newAccount
. The POST request will look like a regular form submission -- i.e. it will have the Content-Type header set toapplication/x-www-form-urlencoded
. The form will also send the following values:email
- used for recovery purposesusername
[optional] - used to specifiy the account name (for servers that do not use sub-domains)
-
Once the account is created, the user is given the option to add her name to her profile and also to upload a profile picture.
-
Finally, the user will be able to obtain a client certificate, that will be bound to her WebID profile.