应用平台 APPSTAGE-新建我的屏幕:Token校验

时间:2024-05-17 16:35:35

Token校验

客户端在使用Token校验的流程如下。

已获取大屏分享链接和Token。

例如,分享链接https://console.ulanqab.huawei.com/sve/preview.html?region=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc。其中“region”的值为“cn-north-7”“pageId”的值为“18cd21df7bc-WPgj_GqRc”

  1. 使用代码开发工具将大屏分享链接中的pageId和region拼接成如下格式的字符串。

    pageId|region

  2. 使用HmacSHA256算法对拼接的字符串进行签名,并将签名后的字符串使用Base64进行转换。签名时需要使用对应的Token。

    HmacSHA256签名和Base64转换的示例如下:
     import java.security.*;
     import javax.crypto.*;
     import javax.crypto.spec.SecretKeySpec;
     import org.apache.commons.codec.binary.Base64;
     import java.net.URLEncoder;
    
     public class ShareWithTokenTest {
    
         public static void main(String[] args) throws Exception {
             System.out.println(getShareUrlWithToken("********722467a9477b5b*******", "cn-7", "*******r1tyy1C7Jenni3p*********"));
         }
    
         public static String getShareUrlWithToken(String pageId, String region, String token){
             String data = pageId + "|" + region;
             String signature = HMA CS HA256(data.getBytes(), token.getBytes());
             String url = "https://console.huaweicloud.com/sve/share/page.html?id=" + pageId + "&region=" + region + "&sve_signature=" + signature;
             return url;
         }
    
         //采用HmacSHA256进行签名并进行Base64转换
         public static String HMACSHA256(byte[] data, byte[] key)
         {
             try  {
                 SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256");
                 Mac mac = Mac.getInstance("HmacSHA256");
                 mac.init(signingKey);
                 return URLEncoder.encode(Base64.encodeBase64String(mac.doFinal(data)));
             } catch (NoSuchAlgorithmException e) {
                 e.printStackTrace();
             } catch (InvalidKeyException e) {
                 e.printStackTrace();
             }
             return null;
         }
     }

  3. 将转换后的字符串赋值给sveSignature,sveSignature参数拼接到大屏分享链接中获取新的访问链接。

    例如,新的访问链接https://console.ulanqab.huawei.com/sve/preview.html?sveSignature=1OP99N6yxCDmEiH4aNMU1GAwtKspSg4fJ/zh0679k=&region=cn-north-7#/screen/share/18cd21df7bc-WPgj_GqRc

support.huaweicloud.com/qs-appstage/appstage_03_0082.html