Use the token returned from pod creation:
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/alice/private/
Enable the built-in Solid-OIDC Identity Provider:
jss start --idp
With IdP enabled, pod creation requires email and password:
curl -X POST http://localhost:3000/.pods \
-H "Content-Type: application/json" \
-d '{"name": "alice", "email": "[email protected]", "password": "secret123"}'
Response:
{
"name": "alice",
"webId": "http://localhost:3000/alice/#me",
"podUri": "http://localhost:3000/alice/",
"idpIssuer": "http://localhost:3000",
"loginUrl": "http://localhost:3000/idp/auth"
}
OIDC Discovery: /.well-known/openid-configuration
For automated testing and scripts, use the credentials endpoint:
curl -X POST http://localhost:3000/idp/credentials \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "secret123"}'
Response:
{
"access_token": "...",
"token_type": "Bearer",
"expires_in": 3600,
"webid": "http://localhost:3000/alice/#me"
}
For DPoP-bound tokens (Solid-OIDC compliant), include a DPoP proof header.
Enable passwordless login with WebAuthn/FIDO2:
jss start --idp
How it works:
Benefits:
Passkeys are stored per-account and work across devices via platform sync (iCloud Keychain, Google Password Manager, etc.).
Sign in with your Nostr key using NIP-07 browser extensions:
jss start --idp
How it works:
Requirements:
did:nostr:<pubkey> WebID linkedBenefits:
The server also accepts DPoP-bound access tokens from external Solid identity providers:
curl -H "Authorization: DPoP ACCESS_TOKEN" \
-H "DPoP: DPOP_PROOF" \
http://localhost:3000/alice/private/
For backend services, CLI tools, and automated agents that need non-interactive authentication:
jss start --ssl-key key.pem --ssl-cert cert.pem --webid-tls
How it works:
SubjectAlternativeName contains a WebID URITesting with curl:
# Generate self-signed cert with WebID in SAN
openssl req -x509 -newkey rsa:2048 -keyout client-key.pem -out client-cert.pem -days 365 \
-subj "/CN=Test" -addext "subjectAltName=URI:https://example.com/alice/#me" -nodes
# Make authenticated request
curl --cert client-cert.pem --key client-key.pem https://localhost:8443/alice/private/
Profile requirement: Your WebID profile must contain the certificate’s public key:
@prefix cert: <http://www.w3.org/ns/auth/cert#> .
<#me> cert:key [
a cert:RSAPublicKey;
cert:modulus "abc123..."^^xsd:hexBinary;
cert:exponent 65537
] .
Use cases: