博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataV 支持 token 验证啦!
阅读量:5991 次
发布时间:2019-06-20

本文共 1055 字,大约阅读时间需要 3 分钟。

有很多同学希望把 DataV 创建的数据可视化大屏整合到自己的网站中,我们很早就提供了这样的支持。

但是如果限定权限则成为了一个问题。

如你嵌入到自己网站中的大屏,可能不希望被别人提取出来,自己打开。或者你提供给 A 用户的大屏,不希望被 B 用户打开。

现在 DataV 就有一个新特性来支持这个问题。

在新上线的 DataV 中的“发布”面板中就有这个叫“验证 Token”的方式来完成鉴权,这个方式是基于 HMAC-SHA256 base64 加密。

WX20170210_013722_2x

如图,在开启“验证 Token”时,DataV 会为您生成一个 Token,您需要记录下这个 Token,以备后用。

在这个时候,如果您尝试直接打开您所分享的页面,您会收到一个 Access Denied。表示您的访问被拒绝了。

如果想要打开您的页面,就需要完成下面几个步骤:

  1. 发布大屏,拿到大屏编码(url 的最后一段)
  2. 将编码与当前时间(毫秒)连起来,用 |(竖线)分隔开
  3. 使用 token 通过 HMAC-SHA256 base64 对上一步得到的字符串进行加密
  4. 将时间和加密后的签名分别命名为 _datav_time, _datav_signature 放入 url 的 querystring 中

下面是示例:

PHP:

NODE.JS:

const crypto = require('crypto');var token = "Ev97wOUSAtJusc3Vsd9O2ngr_vfVFH67";var screenID ="14c5448c00ecde02b065c231d1659f38";var time = Date.now();var stringToSign = screenID +'|'+ time;var signature = crypto.createHmac('sha256', token).update(str).digest().toString('base64');var url="http://datav.aliyun.com/share/"+ screenID +"?_datav_time="+time+"&_datav_signature="+ encodeURIComponent(signature);

注意:为了防止重放攻击,请确保您的服务器时间为东8区标准时间,DataV 只会提供1分钟的误差,如果时间误差超过1分钟将会验证失败。

好了

今天就到这儿吧,小编要回家给主子铲屎了。

_

转载地址:http://ejilx.baihongyu.com/

你可能感兴趣的文章
JAVA并发,BlockingQuene
查看>>
LeetCode – Refresh – Largest Rectangle in Histogram
查看>>
LeetCode – Refresh – Missing Ranges
查看>>
Java 静态代理和动态代理例子
查看>>
杀人游戏
查看>>
R语言—填坑随笔
查看>>
CSS transition 过渡 详解
查看>>
0到1023号端口
查看>>
extjs grid renderer用法
查看>>
CodeCombat-辱骂
查看>>
CSS样式命名整理
查看>>
[HNOI2014]世界树
查看>>
19模块 和 包
查看>>
(转)C++ 自由存储区是否等价于堆?
查看>>
kaggle-泰坦尼克号Titanic-3
查看>>
HDU 3038 How Many Answers Are Wrong
查看>>
Java常见错误整理(一)
查看>>
网卡切换脚本
查看>>
字典操作
查看>>
Javascript基础1
查看>>