> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Identity

> Hoe je Bluesky-handles en DID's over en weer resolvet. Een overzicht van de bewerkingen met Bluesky::identity().

## Overzicht

Bij Bluesky moet je regelmatig handles, DID's en dergelijke naar elkaar resolven.

* [https://docs.bsky.app/docs/advanced-guides/resolving-identities](https://docs.bsky.app/docs/advanced-guides/resolving-identities)
* [https://atproto.com/guides/identity](https://atproto.com/guides/identity)

## Een DID resolven vanuit een handle

### Via de API

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;

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

### Via DNS/well-known

Controleert het DNS TXT-record of `/.well-known/atproto-did`.

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;

$did = Bluesky::identity()->resolveHandle('alice.test');
```

De twee lijken op elkaar, maar werken verschillend. Via de API vraag je over het netwerk de Bluesky-service aan, terwijl de DNS/well-known-variant geschikt is voor het resolven van handles met een eigen domein.

## Het DID Document ophalen vanuit een DID

`resolveDID` geeft het DID Document terug.

[https://plc.directory/did:plc:ewvi7nxzyoun6zhxrhs64oiz](https://plc.directory/did:plc:ewvi7nxzyoun6zhxrhs64oiz)

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;

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

## De handle ophalen uit het DID Document

Het veld `alsoKnownAs` van het DID Document bevat de handle.

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

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

## Gecombineerd resolven met resolveIdentity

Met `resolveIdentity`, een combinatie van `resolveHandle` en `resolveDID`, kun je resolven vanuit zowel een DID als een handle; het geeft het DID Document terug.

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

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

## Het publieke profiel ophalen

Een publiek profiel kun je resolven vanuit zowel een DID als een handle; de response bevat zowel de DID als de handle.

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;

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

## De PDS-URL / serviceEndpoint ophalen

Het `serviceEndpoint` van het DID Document is de URL van de PDS. Je gebruikt deze zelden rechtstreeks, maar kunt hem indien nodig ophalen.

```
https://***.***.host.bsky.network
```

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

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

## De Authorization Server-URL ophalen

Resolvet de URL van de Authorization Server via de PDS.

Voor accounts die bij Bluesky zijn geregistreerd, is dit meestal `https://bsky.social`.

```php theme={null}
use Revolution\Bluesky\Facades\Bluesky;
use Revolution\Bluesky\Support\DidDocument;

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

$pds = Bluesky::pds()->getProtectedResource($didDoc->pdsUrl());
$pds->authServer();
```

<Info>
  Source: [docs/identity.md](https://github.com/invokable/laravel-bluesky/blob/main/docs/identity.md)
</Info>


## Related topics

- [BlueskyManager en HasShortHand](/nl/packages/laravel-bluesky/bluesky-manager.md)
- [WebSocket (Jetstream / Firehose)](/nl/packages/laravel-bluesky/websocket.md)
- [Crypto — AT Protocol-cryptografie](/nl/packages/laravel-bluesky/crypto.md)
