Skip to content

JavaScriptSolidServer/solid-logic-jss

 
 

Repository files navigation

solid-logic-jss

MIT license

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.

Why This Fork?

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

Installation

npm install solid-logic-jss rdflib

Note: rdflib is a peer dependency.

Usage

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')

Browser Usage (ESM)

<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>

API Compatibility

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 WebID
  • authSession.info.isLoggedIn - Login status
  • authSession.login(options) - Initiate login
  • authSession.logout() - Log out
  • authSession.fetch(url, init) - Authenticated fetch
  • authSession.handleIncomingRedirect(options) - Handle OIDC redirect
  • authSession.events.on(event, callback) - Session events

Common Exports

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'

Related

Credits

License

MIT

About

Core Solid logic with minimal solid-oidc authentication (JSS variant)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 95.1%
  • JavaScript 3.7%
  • Other 1.2%