View .md

PasskeysEvent events

5 FeatherPanel plugin events on PasskeysEvent (5 emitted by the core): the event names, the arguments each listener gets, where they fire and a PHP listener for each.

Last synced from FeatherPanel 15b94e9 on .

On this page

Part of the plugin events reference. Listeners get the payload values as positional arguments in the order shown, cannot cancel the action, and must catch their own exceptions.

Setup

Import PasskeysEvent in your entry class and register listeners in processEvents():

<?php

namespace App\Addons\myplugin;

use App\App;
use App\Plugins\AppPlugin;
use App\Plugins\PluginEvents;
use App\Plugins\Events\Events\PasskeysEvent;

class MyPlugin implements AppPlugin
{
    public static function processEvents(PluginEvents $event): void
    {
        $event->on(PasskeysEvent::onPasskeyDeleted(), function ($user, $passkeyId): void {
            App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:auth:passkey:deleted ' . json_encode(['user' => $user, 'passkey_id' => $passkeyId]));
        });
    }

    public static function pluginInstall(): void
    {
    }

    public static function pluginUninstall(): void
    {
    }
}

PasskeysEvent::onPasskeyAuthenticationFailed()

Name: featherpanel:auth:passkey:authentication:failedemitted at 1 siteCancel or modify: nodefinition

Docblock: array context. (the emitter passes 2 values, see the table)

#Payload keyListener parameterType
1error$errorstring
2message$messagenot declared
When it fires (1 site)
$event->on(PasskeysEvent::onPasskeyAuthenticationFailed(), function ($error, $message): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:auth:passkey:authentication:failed ' . json_encode(['error' => $error]));
});

PasskeysEvent::onPasskeyAuthenticationSuccess()

Name: featherpanel:auth:passkey:authentication:successemitted at 1 siteCancel or modify: nodefinition

Docblock: array user.

#Payload keyListener parameterType
1user$userarrayfrom docblock
When it fires (1 site)
$event->on(PasskeysEvent::onPasskeyAuthenticationSuccess(), function ($user): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:auth:passkey:authentication:success ' . json_encode(['user' => $user]));
});

PasskeysEvent::onPasskeyDeleted()

Name: featherpanel:auth:passkey:deletedemitted at 1 siteCancel or modify: nodefinition

Docblock: array user, int passkey id.

#Payload keyListener parameterType
1user$userarrayfrom docblock
2passkey_id$passkeyIdbool
When it fires (1 site)
$event->on(PasskeysEvent::onPasskeyDeleted(), function ($user, $passkeyId): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:auth:passkey:deleted ' . json_encode(['user' => $user, 'passkey_id' => $passkeyId]));
});

PasskeysEvent::onPasskeyRegistered()

Name: featherpanel:auth:passkey:registeredemitted at 1 siteCancel or modify: nodefinition

Docblock: array user, array passkey. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1user$usernot declared
2passkey_id$passkeyIdnot declared
3label$labelstring
When it fires (1 site)
$event->on(PasskeysEvent::onPasskeyRegistered(), function ($user, $passkeyId, $label): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:auth:passkey:registered ' . json_encode(['label' => $label]));
});

PasskeysEvent::onPasskeyUpdated()

Name: featherpanel:auth:passkey:updatedemitted at 1 siteCancel or modify: nodefinition

Docblock: array user, array passkey. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1user$usernot declared
2passkey_id$passkeyIdbool
3label$labelnot declared
When it fires (1 site)
$event->on(PasskeysEvent::onPasskeyUpdated(), function ($user, $passkeyId, $label): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:auth:passkey:updated ' . json_encode(['passkey_id' => $passkeyId]));
});