我们正在考虑下一个应用程序的体系结构,并且在api之间传递令牌时遇到了问题。我们将拥有:
一切正常之后:
我们希望避免每次从该api获取信息时都调用第三方api,但是我们也不想向用户显示JWT(我的意思是localstorage,sessionstorage ...)。
有关更多信息,我们将使用c#语言和sql server作为数据库。
我们的问题:
如何在API之间维护1个令牌?
答案 0 :(得分:3)
您有两个不同的东西需要管理:
我要做的只是在后端生成一个“ sessionId”,这是您发送到前端的令牌的一部分。这可以是int或guid或其他任何形式。
然后我将这个'sessionId'与从第三方获取的令牌相关联并以某种方式存储该令牌-某种形式的数据库或文件存储(很明显,可以使用DB)。
这样,无论何时从后端代码中的前端发出请求,您都应该:
每当需要获取新令牌时,您都必须确保更新此关联,但这应该不太困难。
您还可以使用它来使事物的性质更加不同步-您可以立即返回您的前端,并返回一条提示,表明它是“ Working On It”,然后前端可以稍后再调用一个单独的端点以获取结果...这样,如果第3方链接花费了一段时间,则原始请求不会等待太长时间而无法获得响应...