在微服务体系结构中,假设我有4个服务需要文件上传/下载功能,我有两个选项:
但是当涉及到文件下载授权时,下载权限实际上取决于其他4种服务数据(如果用户可以访问该客户,那么他可以下载客户的合同),这将引入与其他4种服务的高度耦合,以及当数据类型( customer order contract.)增加,就会变得更加复杂。
你会选择哪一个,或者你有其他的解决方案?
发布于 2022-09-30 11:03:15
理想情况下,您可以将授权转移到一个声明,该声明将被附加到用户令牌并与所有服务调用一起发送。
如果您不能这样做,您可以拥有FileStorage微服务,但只向其他服务公开,而不是直接向用户公开。客户(或任何其他)服务可以为FileStorage服务注入一个接口,执行其auth检查,并且只有在文件通过时才能获得/返回该文件。
https://softwareengineering.stackexchange.com/questions/441257
复制相似问题