Passer au contenu principal

Vue d’ensemble

Sur Bluesky, la résolution mutuelle entre Handle et DID est très fréquente.

Résoudre un DID depuis un Handle

Via l’API

use Revolution\Bluesky\Facades\Bluesky;

$did = Bluesky::resolveHandle('***.bsky.social')->json('did');

Via DNS / well-known

Consulte l’enregistrement TXT DNS ou /.well-known/atproto-did.
use Revolution\Bluesky\Facades\Bluesky;

$did = Bluesky::identity()->resolveHandle('alice.test');
Les deux approches se ressemblent mais ont des comportements différents. L’API interroge le service Bluesky par le réseau, tandis que DNS / well-known est adapté à la résolution de Handles sur domaine personnalisé.

Récupérer un DID Document depuis un DID

resolveDID renvoie un DID Document. https://plc.directory/did:plc:ewvi7nxzyoun6zhxrhs64oiz
use Revolution\Bluesky\Facades\Bluesky;

$didDoc = Bluesky::identity()->resolveDID('did:plc:*** ou did:web:***')->json();

Récupérer le Handle depuis un DID Document

Le Handle figure dans le champ alsoKnownAs du DID Document.
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveDID('did:plc:*** ou did:web:***')->json());
$handle = $didDoc->handle();

Résolution unifiée via resolveIdentity

resolveIdentity, qui combine resolveHandle et resolveDID, permet de résoudre à partir d’un DID ou d’un Handle et renvoie le DID Document.
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveIdentity('did ou handle')->json());
$didDoc->id();
$didDoc->handle();

Récupération du profil public

Le profil public peut être résolu à partir d’un DID ou d’un Handle, et la réponse contient à la fois le DID et le Handle.
use Revolution\Bluesky\Facades\Bluesky;

$profile = Bluesky::getProfile('did ou handle');
$profile->json('did');
$profile->json('handle');

Récupération de l’URL PDS / serviceEndpoint

Le champ serviceEndpoint du DID Document correspond à l’URL du PDS. On l’utilise rarement directement, mais on peut le récupérer si besoin.
https://***.***.host.bsky.network
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveIdentity('did ou handle')->json());
$didDoc->pdsUrl();

Récupération de l’URL du serveur d’autorisation

Résout l’URL du serveur d’autorisation via le PDS. Pour un compte enregistré sur Bluesky, il s’agit généralement de https://bsky.social.
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

$didDoc = DidDocument::make(Bluesky::identity()->resolveIdentity('did ou handle')->json());

$pds = Bluesky::pds()->getProtectedResource($didDoc->pdsUrl());
$pds->authServer();
Dernière modification le 13 juillet 2026