-
微服务认证最佳方案BFF(Backends For Frontends)是“服务于前端的后端”的简称。它的核心思想是在设计后端微服务API接口时,考虑到不同设备的需求,为不同的设备提供不同的API接口。
在没有BFF层的情况下,客户端需要直接访问服务器的公共接口。而在引入BFF层后,客户端不再直接访问服务器,而是调用BFF层提供的接口。BFF层再调用基础的服务,为不同的客户端提供定制化的API接口。这样,不同的客户端拥有不同的BFF层,它们分别定制客户端需要的API接口。
有了BFF层之后,客户端只需要发起一次HTTP请求,BFF层就能调用不同的服务,然后把汇总后的数据返回给客户端。这样就减少了外网的HTTP请求,提高了响应速度。
在BFF项目中设置了鉴权模块后,我们只需要在BFF项目的Web方法上面设置权限验证的注解即可。由于一种BFF项目只服务于一种客户端,因此我们不需要考虑不同客户端的权限叠加问题。例如,在司机BFF项目的代码上,我们只需要考虑司机端小程序的权限验证,代驾客户根本不可能访问到司机BFF层。
其实就是一个项目 -
SaToken是一个国产开源权限验证框架,相较于Shiro和Spring Security,它更加简单易用,适合新手快速上手。SaToken在Gitee上获得了6.2K的star,文档齐全,功能丰富,包括登录认证、权限认证、Session会话、踢人下线、账号封禁、持久层扩展、分布式会话、微服务网关鉴权和单点登录等功能。
SaToken的特点如下:
- 登录认证:支持单端登录、多端登录、同端互斥登录、七天内免登录等。
- 权限认证:包括权限认证、角色认证、会话二级认证等。
- Session会话:支持全端共享Session、单端独享Session、自定义Session等。
- 踢人下线:可以根据账号id或Token值踢人下线。
- 账号封禁:支持指定天数封禁、永久封禁、设定解封时间等。
- 持久层扩展:可集成Redis、Memcached等专业缓存中间件,重启数据不丢失。
- 分布式会话:提供jwt集成、共享数据中心两种分布式会话方案。
- 微服务网关鉴权:适配Gateway、shenYu、Zuul等常见网关的路由拦截认证。
- 单点登录:内置三种单点登录模式,无论是否跨域、是否共享Redis,都可以搞定。