Signed Fetch

Quando clientes de protocolo querem fazer requisições HTTPs autenticadas, eles podem aproveitar o padrão signed fetch mecanismo.

Um signed fetch é requisição que inclui um auth_chain, representado através de headers. Servidores com APIs compatíveis com Decentraland podem validar identidades antes, por exemplo, de permitir requisições de cenasarrow-up-right ou criar adaptersarrow-up-right.

Headers

A informação que o servidor precisa para validar a cadeia de autenticação é retransmitida em 3+ headers:

  • X-Identity-Timestamp: o timestamp campo incluído no payload assinado (veja abaixo).

  • X-Identity-Metadata: o metadata campo incluído no payload assinado (veja abaixo).

  • X-Identity-AuthChain-<index>: o etapa de autenticação serializada em JSON <index>, começando de 0.

A cadeia transmitida é validada pelo servidor conforme especificado.

Body

O corpo da requisição não é especificado. Serviços têm plena flexibilidade para usar quaisquer protocolos ou formatos que desejarem.

Payload

A cadeia de autenticação payload para um signed fetch é um lower-case, colon-separated string que inclui alguns dos elementos da requisição:

<method>:<path>:<timestamp>:<metadata>

O method e path campos devem corresponder aos da requisição, e timestamp é o mesmo que no X-Identity-Timestamp header.

O último campo, metadata, pode ter conteúdo arbitrário.

Por exemplo:

Atualizado