首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储Autodesk-Forge刷新令牌的最佳方法

存储Autodesk-Forge刷新令牌的最佳方法
EN

Stack Overflow用户
提问于 2020-07-07 20:38:06
回答 1查看 125关注 0票数 0

目前,我正在使用autodesk forge查看器和fusion360构建一个web应用程序。我的项目类似于this教程,我只需授权m帐户一次,然后用户可以使用刷新令牌来查看我的帐户中的模型。目前,我正在使用MySQL来存储我的刷新标记。我的表中目前只有一列和一行,每次生成新的刷新令牌时,它都会替换一行中的旧令牌。我刷新令牌的代码如下所示:

代码语言:javascript
运行
复制
 $rToken = $_POST['Value'];
  $query = "UPDATE tblMachineViewerToken SET Value='$rToken'";

因此,每次生成新的刷新令牌时,都会更新表中的一行。这是存储刷新令牌的适当方式吗,因为我有几个实例,我必须再次授权我的帐户。任何帮助都是非常感谢的。干杯!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 23:38:53

如果看不到代码,就很难知道问题是什么,但很可能是refresh_token过期或并发问题。在回答您的问题之前,让我们假设您在数据库中存储了access_token和refresh_token。从安全角度来看,将单个BIM360用户的令牌共享给多个用户是很危险的。这意味着你的所有用户都可以在你不知道的情况下用你的权限访问你的数据,如果发生了什么错误,你永远不会知道谁做了什么。

回到您的问题上,假设userA和userB同时访问您的应用程序(相差几毫秒);您的userA应用程序在执行刷新过程时检测到它需要刷新access_token;userB也访问您的应用程序,并且您的应用程序也检测到令牌需要刷新,因为userA刷新任务尚未完成。在这种情况下,因为一个refresh_token只能使用一次,所以其中一个用户刷新任务将返回一个空令牌,您将丢失连接。您需要确保您的代码作为单例任务运行,并让所有其他请求等待该任务完成。

另一个简单的原因是,给定的refresh_token只有14天有效,因此您需要确保至少每14天刷新一次access_token和refresh_token。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62775489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档