首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SOA中委托刷新令牌更新

如何在SOA中委托刷新令牌更新
EN

Software Engineering用户
提问于 2018-05-03 22:31:40
回答 1查看 577关注 0票数 3

因此,我们在后端( be )和前端(FE)上都有SOA (在需要时,分离的微前端作为组件加载到前端应用程序中,因此它们之间的内部进程调用是可能的,不像后端服务那样必须执行进程间调用)。

实际上,我们有一个Auth服务和一些其他Bananas服务。在FE上,我们也有一个auth微前端和任何其他的bananas微前端。假设用户的access token已过期,并向/bananas/create提出请求。当然,我们的每个BE服务都验证在每个请求上接收到的访问令牌,如果无效,返回401。我们希望实现refresh token功能(刷新令牌将与每个请求一起与访问令牌一起传递)。

现在的问题是:如果收到一个带有过期令牌的请求:

  1. 如果Bananas服务在看到令牌过期时,调用Auth服务来验证refresh token并接收新的令牌,然后执行实际的香蕉业务并使用令牌对+实际的香蕉数据进行响应。一通电话。或者..。
  2. Bananas是否仍应返回401,然后香蕉微前端委托到auth微前端调用Auth服务以获取新令牌,然后将其返回到香蕉微前端,并使用有效的令牌对Bananas服务进行新的调用?

这是我和我的同事之间的设计难题。我的意思是,我不想有三个请求-响应的电话来回。他认为,Bananas服务应该始终只返回其响应对象中的香蕉数据,而不应该在返回令牌对时出现这种情况。

在我看来,我们的观点都是正确的,但我们没有经验和知识来决定哪个更优先/哪个是更好的设计。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2018-05-03 23:32:48

2.

前端拥有auth,所以前端应该管理它。就我个人而言,我会有一些较薄的前端层来编排组件(并处理所有组件所需的用户/身份验证/授权)。但是,您的同事是对的,API应该为每个调用返回相同的数据类型。请求/响应/请求将不时发生(如果适用,还会出现乐观并发;以及瞬态网络类型的错误重试),并且可以通过提前刷新令牌来缓解。

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

https://softwareengineering.stackexchange.com/questions/370425

复制
相关文章

相似问题

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