Joomla

⚠️

This plugin is under development (ATT-487). The information below describes planned functionality. For immediate integration, use the JavaScript guide to add DID login manually.

Why Joomla Matters

Many Costa Rican government websites and institutional portals run on Joomla. A native authentication plugin ensures these sites can adopt DID-based identity without custom development.

What the Plugin Will Do

  • Authentication plugin — integrates with Joomla's authentication framework as a standard plugin
  • Admin configuration — trusted issuers, resolver URL, and login behavior configurable from the Joomla admin panel
  • Joomla 4.x and 5.x — compatible with current Joomla LTS releases
  • User group mapping — map credential types to Joomla user groups (e.g., professional license holders get elevated access)

Planned Configuration

attestto-auth.xml
 <extension type="plugin" group="authentication">
  <name>plg_authentication_attestto</name>
  <version>1.0.0</version>
  <description>DID-based authentication for Joomla</description>

  <config>
    <fields>
      <fieldset name="basic">
        <field name="resolver_url"
          type="url"
          default="https://resolver.attestto.com"
          label="DID Resolver URL" />
        <field name="trusted_issuers"
          type="textarea"
          label="Trusted Issuers (one DID per line)" />
        <field name="auto_register"
          type="radio"
          default="1"
          label="Auto-register new users" />
      </fieldset>
    </fields>
  </config>
</extension> 

Planned Features

  • Login module override — replace the default login form with a DID login button
  • Credential-gated content — restrict articles or menu items to users with specific credential types
  • Audit log — track DID-based authentication events in the Joomla log

Manual Approach (Available Now)

Until the plugin ships, use the vanilla JavaScript approach. Add the adapter script to your Joomla template's index.php or use a custom HTML module:

HTML
 <script
  type="module"
  src="https://cdn.attestto.com/id-wallet-adapter/0.4.1/index.mjs"
></script>

<button id="did-login">Sign in with DID</button>

<script type="module">
  import { pickWallet } from
    'https://cdn.attestto.com/id-wallet-adapter/0.4.1/index.mjs'

  document.getElementById('did-login')
    .addEventListener('click', async () => {
      const wallet = await pickWallet({ render: 'modal' })
      // Continue with VP request and backend verify
      // See JavaScript guide for full example
    })
</script>