Core Solid logic with minimal solid-oidc authentication (JSS variant)
A fork of solid-logic that replaces @inrupt/solid-client-authn-browser with the minimal solid-oidc library.
| Aspect | solid-logic (original) | solid-logic-jss |
|---|---|---|
| Auth library | @inrupt/solid-client-authn-browser (~150KB) | solid-oidc (~20KB) |
| Auth code | Compiled/minified | 584 lines, readable |
| Dependencies | Many | Minimal |
npm install solid-logic-jss rdflibNote:
rdflibis a peer dependency.
import { solidLogicSingleton, store, authn, authSession } from 'solid-logic-jss'
// Check current user
console.log('Current user:', authn.currentUser())
// Login
await authSession.login({
oidcIssuer: 'https://solidcommunity.net',
redirectUrl: window.location.href
})
// Make authenticated requests
const response = await authSession.fetch('https://pod.example/private/data.ttl')<script type="module">
import * as $rdf from 'https://esm.sh/rdflib'
import { solidLogicSingleton, authn, authSession } from 'https://esm.sh/solid-logic-jss'
// Handle login redirect
await authSession.handleIncomingRedirect({ restorePreviousSession: true })
console.log('Current user:', authn.currentUser())
</script>This fork maintains API compatibility with solid-logic. The authSession object provides the same interface as @inrupt/solid-client-authn-browser:
authSession.info.webId- Current user's WebIDauthSession.info.isLoggedIn- Login statusauthSession.login(options)- Initiate loginauthSession.logout()- Log outauthSession.fetch(url, init)- Authenticated fetchauthSession.handleIncomingRedirect(options)- Handle OIDC redirectauthSession.events.on(event, callback)- Session events
import {
solidLogicSingleton, // Complete singleton instance
store, // RDF store
authn, // Authentication logic
authSession, // Authentication session
ACL_LINK, // ACL constants
// Error classes
UnauthorizedError,
NotFoundError,
FetchError
} from 'solid-logic-jss'- solid-oidc - Minimal OIDC client
- solid-logic - Original library
- JavaScriptSolidServer - JSS ecosystem
- Original solid-logic by SolidOS team
- solid-oidc based on work by uvdsl
MIT