背景
网关服务的作用有很多,比如负载均衡、路由转发、鉴权等等。最近在做需求时碰到了两类问题,需要网关服务提供一些支撑,用户如何绕过网关鉴权免登录?Api
接口如何免检?
网关免登录
最近遇到一个需求:买方在平台发布了一个询价单,通过IM
客户端将该单的详情以卡片形式发送给卖方,卖方点击该卡片可以跳往对应报价单页面进行报价,买家也可以点击该卡片跳往询价单详情页查看报价情况。因为以上跳转方式是通过IM
客户端打开浏览器页面,因此为了用户的体验和效率,希望跳转过程跳过登录环节。
IM
客户端用户和web
端用户都是通过公司一账通(SSO
)登录的,不同系统间账户都是互通的,因此在IM
客户端唤醒浏览器打开链接时可以将身份信息作为url
参数,网关检测到访问链接上携带身份信息时放行,进行路由转发,详细流程如下:
网关免检
在讲如何去实现网关免检时,先来描述一个真实的业务场景:一个车主去维修厂修车,维修厂给车主推荐了很多不同品牌的配件,车主不知道该选择哪个品牌的配件,希望维修厂家能够介绍一下,于是维修厂家就将不同品牌商的介绍信息(H5
承载)分享给车主,车主比较了不同品牌商的优劣时候选择了其中一款品牌商配件。
上面场景中,车主通过浏览器打开H5
页面查看品牌商介绍信息,页面打开后会调用接口获取商家信息,但车主并不是平台用户,是无法登录的,因此网关需要对H5
链接以及接口做免检处理,对其放行。常见的免检处理方法就是在请求url
加入免检的关键路径,比如对含有/public
的请求路径放行