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 cenas ou criar adapters.
Headers
A informação que o servidor precisa para validar a cadeia de autenticação é retransmitida em 3+ headers:
X-Identity-Timestamp: otimestampcampo incluído no payload assinado (veja abaixo).X-Identity-Metadata: ometadatacampo incluído no payload assinado (veja abaixo).X-Identity-AuthChain-<index>: o etapa de autenticação serializada em JSON<index>, começando de0.
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