# Signed Login

The Signed Login transport can be used by servers that want to customize the way they assign clients to islands, replacing or wrapping Archipelago in their architecture.

Instead of connecting directly to a real-time backend, Signed Login makes a [signed fetch](https://github.com/decentraland/docs/blob/main/contributor/auth/signed_fetch/README.md) to obtain the connection string. This intermediate step allows servers to employ whatever assignment strategy they want.

Signed Login URIs have this shape:

```
signed-login:https://comms.example.com/auth&param=value
```

The portion after the `signed-login:` prefix can be any valid URL.

### Usage

A Signed Login request is constructed using the [signed fetch](https://github.com/decentraland/docs/blob/main/contributor/auth/signed_fetch/README.md) mechanism.

The response, if successful, will have status `200` and a JSON body with *at least* the following fields:

| Field          | Type     | Value                                                      |
| -------------- | -------- | ---------------------------------------------------------- |
| `fixedAdapter` | `string` | The assigned transport URI (e.g. `livekit:` or `ws-room:`) |

For example:

```
{ 
  fixedAdapter: "ws-room:wss://comms.example.com/rooms/17"
}
```

In case of failure, the response can have any appropriate status code and a JSON body with *at least* the following fields:

| Field     | Type     | Value                                                    |
| --------- | -------- | -------------------------------------------------------- |
| `message` | `string` | (Optional) an explanation or error code for the failure. |

Responses with additional fields in the JSON body are valid, and the contents of the error `message` left unspecified. Implementations can use this flexibility to integrate `signed-login:` into their applications as they see fit.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decentraland.org/contributor/communications/transport-types/signed-login.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
