跳到主要内容

Five数据签名问题

问题描述

Five数据包含 expire_atsignature 字段,按设计应该在 5 分钟后过期。一份Five数据未更新签名,一天后用来初始化Five仍然可用。这是为什么?

推荐解决方案

无论是什么应用场景,我们建议每次需要 Five 数据时,都使用 open/v3/vr/info API 来重新获取最新的数据,而不是重复使用缓存的数据。

什么时候过期的Five数据可以正常渲染

1. expire_at 字段其实没有过期

查看数据中的 expire_at 字段,确认时间戳是否已经超过当前时间。注意:是系统本地的时间(可以被用户自行调整),five不会联网获取服务器时间。

// 检查是否过期的示例代码
const expireAt = data.expire_at; // 例如: "1964772839406"
const now = Date.now();
const isExpired = now > expireAt;

console.log('数据是否已过期:', isExpired);
console.log('过期时间:', new Date(expireAt));
console.log('当前时间:', new Date(now));

2. 页面没有刷新

如果没有刷新页面,Five不会重新验证签名以及数据是否过期

3. 使用IP/localhost访问

使用 IP 地址或 localhost 访问时,系统不会进行签名验证:

  • 会验证: https://yourdomain.com
  • 不会验证: http://localhost:3000, http://127.0.0.1:3000, http://192.168.1.100:3000

如果您在本地开发环境中测试,这可能是数据仍然可用的原因。

相关链接