针对 网关zuul 的授权认证应用场景解决方案
来源:8-3 Zuul:Cookie和动态路由

__孤独的旅行者
2019-01-12
师兄大大,你好!在学完你的Spring Cloud课程后受益良多,干货满满。就在2天前,我尝试着将之前自己做的微信小程序项目由【单个服务】通过cloud拆分成了【多个服务】,然而并不是很顺利,拆分过程中在小程序的【授权登录】这块出现了点问题。因为之前是【单体应用】所以一套授权逻辑没问题,现在我拆成了【多个服务】【1.商品服务(无须授权)】【2.购物车服务(要授权)】【3.订单服务(要授权)】,微服务cloud是通过【网关】转发请求的,所以不可能是在每个服务都做授权认证逻辑吧。我现在的【应用场景问题】是 访问商品服务时不用授权即可服务,但是我通过【商品服务】去调用【购物车服务】和【订单服务】时会报未经授权等错误。反之,服务间相互调用错误也一样。师兄,我想知道在【大厂】的实际应用中,是怎么给出的解决方案。(我自己猜想的解决方案:在网关zuul中去做授权认证,之后再将授权信息放存储Redis当中,并通过自定义的【注解标签】,给需要授权的URL地址的方法中加上此注解,如:queryXxx(@LoginUser User user),在服务调用时,Method()方法参数中有这样的【注解标签】时,我就去 Redis 中读取 授权信息 赋值给 User 对象。不知道这样做对吗?)谢谢 师兄。
1回答
-
廖师兄
2019-01-13
你说的需要授权,可以理解为需要登陆吧。如果每个接口都要登录才能访问,可以直接在zuul做。如果部分接口需要登陆,建议每个接口自己处理,可以使用自定义注解来完成,比如定义注解@NeedLogin,哪个接口需要登录访问就加这个注解。
00
SpringCloud Finchley(M2+RELEASE+SR2)微服务实战
5672 学习 · 2489 问题
相似问题