lthn.io/app/CorePlug/Contract/Authenticable.php
Claude 41a90cbff8
feat: lthn.io API serving live chain data
Fixed: basePath self→static binding, namespace detection, event wiring,
SQLite cache, file cache driver. All Mod Boot classes converted to
$listens pattern for lifecycle event discovery.

Working endpoints:
- /v1/explorer/info — live chain height, difficulty, aliases
- /v1/explorer/stats — formatted chain statistics
- /v1/names/directory — alias directory grouped by type
- /v1/names/available/{name} — name availability check
- /v1/names/lookup/{name} — name details

Co-Authored-By: Charon <charon@lethean.io>
2026-04-03 17:17:42 +01:00

45 lines
988 B
PHP

<?php
declare(strict_types=1);
namespace Core\Plug\Contract;
use Core\Plug\Response;
/**
* Contract for authentication operations.
*
* Covers OAuth2, API key, webhook, and credential-based auth flows.
*/
interface Authenticable
{
/**
* Get provider identifier (e.g., 'twitter', 'bluesky').
*/
public static function identifier(): string;
/**
* Get display name (e.g., 'X', 'Bluesky').
*/
public static function name(): string;
/**
* Get OAuth authorisation URL.
*
* Returns empty string if not OAuth-based.
*/
public function getAuthUrl(): string;
/**
* Exchange credentials/callback params for access token.
*
* @param array $params OAuth callback params or credentials
* @return array Token data or error
*/
public function requestAccessToken(array $params): array;
/**
* Get authenticated account information.
*/
public function getAccount(): Response;
}