如何配置Token发布

使用 Token 发布可视化应用


使用 Token 发布可视化应用,将可视化应用的访问权限与您的权限体系进行集成。


开启 Token 验证并获取 SecretKey


在可视化应用发布时选择 Token 发布,此时您将获得该可应用的访问 URL 和 SecretKey。

您应当谨慎保管 SecretKey。


生成 Token 并拼接成完整 URL


EasyV 使用标准的 JSON Web Token 进行验证。
通过以下步骤可生成受 Token 验证防护的应用 URL:


设置 Payload


Payload 中支持以下添加以下字段:

名称

类型

描述

是否必填

exp

number

URL 过期时间(时间戳)。若当前时间超出过期时间,则应用不允许访问。EasyV 支持的最长过期时长为 24 小时。请确保您的服务器时间为东 8 区标准时间。

必填

limit

number

URL 允许的访问次数。若 URL 访问次数超过 limit 值,则应用不允许访问。不填则不限制 URL 访问次数。

选填


使用 SecretKey 进行签名


使用 HMAC-SHA256 base64 对上一步中设置的 payload 进行签名,生成 JSON Web Token


拼接 URL


将上一步生成的 Token 拼接到预览链接中。
在 URL 中添加 query 参数: _easyv_token=YourUniqueToken


示例代码:


Python


安装 jwt 依赖库:


pip install PyJWT


主要代码如下:


import jwt
import time

secretKey = 'YourSecretKey'
baseShareUrl = 'https://easyv.dtstack.com/workspace/shareScreen/yourSreenId'

payload = {
    "limit": 1,  # 只允许访问一次
    "exp": int(time.time()) + 30 * 60   # 30分钟过期
}

token = jwt.encode(payload, secretKey, algorithm="HS256")
URL = baseShareUrl + '?_easyv_token=' + token
print("应用链接: ", URL)


Java


配置 maven:


<dependency>
  <groupId>com.auth0</groupId>
  <artifactId>java-jwt</artifactId>
  <version>3.17.0</version>
</dependency>


主要代码如下:


import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTCreationException;

import java.util.Date;

public class Main {
    public static void main(String[] args) {
        String baseShareUrl = "https://easyv.dtstack.com/workspace/shareScreen/yourSreenId";
        try {
            Algorithm algorithm = Algorithm.HMAC256("YourSecretKey");
            String token = JWT.create()
                    .withExpiresAt(new Date(System.currentTimeMillis() + 60 * 1000)) // 60秒后过期
                    .withClaim("limit", 1) // 限制使用1次
                    .sign(algorithm);
            String url = baseShareUrl + "?_easyv_token=" + token;
            System.out.println("应用链接: " + url);
        } catch (JWTCreationException exception) {
            exception.printStackTrace();
        }
    }
}


Node.js


安装 jwt 依赖库:


npm install jsonwebtoken


主要代码如下:


const jwt = require('jsonwebtoken');

const secretKey = 'YourSecretKey';
const baseShareUrl = 'https://easyv.dtstack.com/workspace/shareScreen/yourSreenId';

const limit = 1; //只允许访问一次

const token = jwt.sign({ limit }, secretKey, { algorithm: 'HS256', expiresIn: '1h' });

const URL = `${baseShareUrl}?_easyv_token=${token}`;
console.log('应用链接: ', URL);


Go


安装 jwt 依赖库:


go get github.com/dgrijalva/jwt-go


主要代码如下:


package main

import (
	"github.com/dgrijalva/jwt-go"
	"time"
)

const secretKey = `YourSecretKey`
const baseShareUrl = `https://easyv.dtstack.com/workspace/shareScreen/yourSreenId`

func main() {
	tokenMaker := jwt.New(jwt.GetSigningMethod("HS256"))
	tokenMaker.Claims = jwt.MapClaims{
		"limit": 1,                                     // 限制 URL 只允许访问一次
		"exp":   time.Now().Add(time.Hour * 2).Unix(), // 设置过期时间为 2 小时
	}

	token, _ := tokenMaker.SignedString([]byte(secretKey))
	url := baseShareUrl + `?_easyv_token=` + token
	print("应用链接:", url)
}
400-8505-905复制
免费试用
在线咨询
微信社区
易知微-数据可视化
微信扫一扫入群