DataV 支持 token 验证啦!
有很多同学希望把 DataV 创建的数据可视化大屏整合到自己的网站中,我们很早就提供了这样的支持。
但是如果限定权限则成为了一个问题。
如你嵌入到自己网站中的大屏,可能不希望被别人提取出来,自己打开。或者你提供给 A 用户的大屏,不希望被 B 用户打开。
现在 DataV 就有一个新特性来支持这个问题。
在新上线的 DataV 中的“发布”面板中就有这个叫“验证 Token”的方式来完成鉴权,这个方式是基于 HMAC-SHA256 base64 加密。
如图,在开启“验证 Token”时,DataV 会为您生成一个 Token,您需要记录下这个 Token,以备后用。
在这个时候,如果您尝试直接打开您所分享的页面,您会收到一个 Access Denied。表示您的访问被拒绝了。
如果想要打开您的页面,就需要完成下面几个步骤:
- 发布大屏,拿到大屏编码(url 的最后一段)
- 将编码与当前时间(毫秒)连起来,用
|
(竖线)分隔开 - 使用 token 通过 HMAC-SHA256 base64 对上一步得到的字符串进行加密
- 将时间和加密后的签名分别命名为 _datav_time, _datav_signature 放入 url 的 querystring 中
下面是示例:
PHP:
<?php$token = "kBwoX9rFX9v4zbOT0Gjd_wr65DZ3P_WW";$screenID = "03d1b68faeb09671046d1ef43f588c33";$time = time()*1000;$stringToSign = $screenID.'|'.$time;$signature = urlencode(base64_encode(hash_hmac('sha256', $stringToSign, $token, true)));$url = "http://local.datav.aliyun.com:9999/share/".$screenID."?_datav_time=".$time."&_datav_signature=".$signature;
?>
<iframe width=100% height=100% src="<?=$url?>"/>
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分钟将会验证失败。
好了
今天就到这儿吧,小编要回家给主子铲屎了。
DataV 支持 token 验证啦!相关推荐
- 手动生成token_手动设计简单的Token验证
简述一下项目中手写的Token验证服务设计过程 PART A 设计校验的哈希算法 这里直接展示整个项目中用到的算法库,其中涉及位运算的可不管 直接应用到的方法是hash(str) 大概流程如下 1.构 ...
- jwt token 附加用户信息_SpringBoot+JWT实现token验证并将用户信息存储到@注解内
springboot集成jwt实现token验证 1.引入jwt依赖 io.jsonwebtoken jjwt 0.9.0 com.auth0 java-jwt 3.9.0 2.自定义两个注解 /** ...
- 手动设计简单的Token验证
简述一下项目中手写的Token验证服务设计过程 PART A 设计校验的哈希算法 这里直接展示整个项目中用到的算法库,其中涉及位运算的可不管 直接应用到的方法是hash(str) 大概流程如下 1.构 ...
- VUE+SpringBoot+JWT实现token验证,SSO单点登录
Session的产生: 在说session是啥之前,我们先来说说为什么会出现session会话,它出现的机理是什么?我们知道,我们用浏览器打开一个网页,用到的是HTTP协议,htpp协议是无状态的,什 ...
- go token验证_registry v2 解析以及如何实现token验证
提到registry v2,主要改进是支持并行pull镜像,镜像层id变成唯一的,解决同一个tag可能对应多个镜像的问题等等.如果还不太了解,可以且听我细细道来. 首先不得不说的是v2 新加了一个概念 ...
- fastadmin token 验证错误_用签名保护你的隐私(4)--token生成
Token 是在服务端产生的.如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端.前端以后再次请求的时候带上 Token 证明自己的合法地位,无需再次带上 ...
- go token验证_golang jwt+token验证的实现
Token验证是验证用户身份的重要方式,在golang开发中具有广泛应用,文中主要阐述了利用jwt包加密后的token验证. 导入包: import ( "github.com/dgrija ...
- go token验证_GitHub - goflyfox/gtoken: 基于gf框架的token插件,通过服务端验证方式实现token认证;...
gtoken 介绍 基于GoFrame框架的token插件,通过服务端验证方式实现token认证:已完全可以支撑线上token认证,通过Redis支持集群模式:使用简单,大家可以放心使用: gtoke ...
- 【Kubernetes】k8s的安全管理详细说明【k8s框架说明、token验证和kubeconfig验证详细说明】
文章目录 环境准备 k8s安全框架介绍 token验证 说明 启用token验证 测试token验证 base-auth[已经被淘汰] kubeconfig验证 说明 kubeconfig文件拷贝做测 ...
最新文章
- 怎么快速把语音转成文字
- hi!亲爱的好友,欢迎您的光临
- “ yield”关键字有什么作用?
- 《PHP求职宝典》--Web设计页面笔记
- [BUUCTF-pwn]——bjdctf_2020_babystack
- Anaconda python3.6版本下载
- Rxjs 的一些学习笔记
- Java 微服务框架对比:Dubbo 和 Spring Cloud
- ubuntu部署tomcat
- ORA-12519: TNS:no appropriate service handler found 解决方法
- 融云发送图片消息_IM消息ID技术专题(五):开源分布式ID生成器UidGenerator的技术实现...
- php 文件上传框架,Laravel框架实现文件上传的方法分析
- 小白_Unity引擎_Console控制台
- OCR手写字体生成数据
- 房地产中介信息管理系统平台源码开发解决方案
- JAVA 实现阿里云的短信验证码
- 腾讯云TRTCCalling实时音视频说明文档
- c++ 中 setw()函数
- html中将正方形动画变成圆形,css中把正方形变成圆形的方法
- 免费全能空间(无广告)php +mysql
热门文章
- 商品规格表设计_400㎡美容院装修设计,为什么说无中式不贵气?
- Spring详解:WebServlet 中不能注入Bean对象
- php转盘抽奖源码yii2,yii2实现 上一篇,下一篇 功能的代码实例
- apache http自动跳转https_怎么给网站开启https协议?Apache2下SSL证书安装配置方法...
- learning scala read from file
- 著名站点的爬虫 —— 豆瓣
- LeetCode OJ -Happy Number
- (C#)设计模式之装饰模式
- 如何设置listview每个item高度
- BeanUtils工具包操作JavaBean