Todos os produtos
Search
Central de documentação

DataV:Verificar a validade de parâmetros assinados digitalmente em um token

Última atualização: Jun 27, 2026

O recurso Token parameter for signature verification permite assinar parâmetros de URL transmitidos a um projeto DataV publicado. Parâmetros assinados não podem ser adulterados, o que protege os dados do projeto e a privacidade dos usuários.

Pré-requisitos

Antes de usar este método, certifique-se de que:

  • A tela de visualização de dados usa autenticação por token. Para mais informações, consulte Publicar uma aplicação visualizada em um PC.

  • O painel usa o método GET para transmitir parâmetros na URL.

  • Os parâmetros da URL devem estar protegidos contra adulteração.

Cenários

O exemplo a seguir ilustra quando e por que usar a verificação de assinatura de parâmetros de token.

Suponha que um painel do DataV esteja incorporado ao sistema de um usuário. A URL é gerada com um token e o número funcional do usuário é transmitido como parâmetro GET para que o painel exiba os dados correspondentes. A URL resultante tem o seguinte formato: https://datav.aliyuncs.com/share/xxx?_datav_time=1556022195845&_datav_signature=%2BDZFj3QDIla%2F00fBZLdJMgk2Z1Ocs9MLL1******%3D&workid=123.

O parâmetro workid (ID do trabalho) pode ser adulterado. Por exemplo, um funcionário com o número funcional 123 poderia alterar a URL para https://datav.aliyuncs.com/share/xxx?_datav_time=1556022195845&_datav_signature=%2BDZFj3QDIla%2F00fBZLdJMgk2Z1Ocs9MLL1******%3D&workid=124 para visualizar os dados do funcionário 124. Para evitar isso, ative a autenticação por assinatura. Após a ativação, qualquer modificação nos parâmetros assinados na URL invalida o link.

Regras de parâmetros

Um parâmetro só entra no cálculo da assinatura se o nome começar com datav_sign_ (correspondente à expressão regular /^datav_sign_.*/).

Nota

Parâmetros fora dessa convenção de nomenclatura não são assinados e seus valores podem ser alterados livremente. Os parâmetros de assinatura são classificados em ordem crescente.

URL com parâmetros de assinatura

O código de exemplo Node.js a seguir gera uma URL assinada:

const crypto = require('crypto');
const querystring = require('querystring');
const signedQueryParamReg = /^ datav_sign_.*/; // Parameters that conform to this regular expression need to be signed. 

const token = "93TWnmeBtxxxxxxxxxx3thGyAgzennsS";
const screenID ="b92xxxxxxxxxxxxxxxxxx27b4c538cd4";
const time = Date.now();

const customeParams = {
  datav_sign_no: 123998,
  name: 123
};
let signParamsStr = Object.keys(customeParams)
  .filter(paramName => customeParams[paramName] && signedQueryParamReg.test(paramName))
  .sort()
  .map(param => `${param}=${customeParams[param]}`)
  .join('&');
let stringToSign = [screenID, time];
signParamsStr && stringToSign.push(signParamsStr);
stringToSign = stringToSign.join('|');
let signature = crypto.createHmac('sha256', token).update(stringToSign).digest().toString('base64');
let queryParams = {
  _datav_time: time,
  _datav_signature: signature
};

Object.keys(customeParams).forEach(paramName => {
  queryParams[paramName] = customeParams[paramName];
});

let url = `https://datav.aliyuncs.com/share/${screenID}?${querystring.stringify(queryParams)}`;
console.log(url);

O código anterior produz uma URL como: https://datav.aliyuncs.com/share/b92db8e09358c82efca0727b4c538cd4?_datav_time=1556023246894&_datav_signature=GGSbvxlemUeBoRVco8JgrJVWRcmao7NuRYt2O******%3D&datav_sign_no=123998&name=123. Enquanto a URL for válida, modificar o valor de datav_sign_no torna o link inacessível, pois esse parâmetro segue as regras de parâmetros e está incluído na assinatura. No entanto, modificar name não afeta o acesso, porque name não corresponde à convenção de nomenclatura e não é assinado.

Procedimento

  1. Defina os nomes dos parâmetros que devem ser assinados. Esses parâmetros não podem ser adulterados após a transmissão.

  2. Após desenvolver o painel de visualização de dados, publique-o com autenticação por token. Para mais informações, consulte Publicar uma aplicação de visualização em um PC.

  3. Calcule a URL do painel de visualização de dados. Para mais informações, consulte Calcular a URL com parâmetros de assinatura.

  4. Use a URL calculada na etapa anterior para acessar a tela de visualização de dados. O sistema verifica automaticamente a assinatura dos parâmetros durante o acesso.

    Se a verificação for bem-sucedida e você alterar os parâmetros de assinatura na URL, o acesso será negado na próxima tentativa.