BFF + Cookie 不是前端鉴权的新思路

116 阅读2分钟

今天是2025年6月19日。

本文是对《别再把JWT存在localStorage里了!2025年前端鉴权新思路》的一些读后感。

阅读本文前请先阅读上方文章。

BFF 是什么

稍微看了一看,发现一个新词我不了解,那就是BFF,Backend for frontend 的首字母缩写。我就去简单搜了一下,看看这 BFF 到底是个什么东西,但是没搜到想要的内容,索性直接问 Deepseek。

贴上 Deepseek 给的答案:

BFF 是一种微服务架构中的设计模式,专门为解决前端与后端服务之间的高效交互而设计。其核心思想是为不同的前端应用(如Web、移动端、第三方等)提供专属的后端服务,避免“一刀切”的API设计,从而提升性能和开发效率。

应用鉴权

一开始的B/S架构的应用鉴权是通过cookie+session来实现的。而C/S架构因为不是浏览器所以没有cookie这个概念,则使用 jwt 这种方式来鉴权。

后面因为技术发展以及各种复杂的应用架构(微前端、微服务、中/后台、SaaS),让 jwt 在 B/S 架构的应用鉴权上也普遍应用。就简单提一下,不讨论refresh_token和access_token这些概念。

在浏览器里,通常有两个地方可以存放 JWT,以便于网站发送HTTP请求是可以使用。

  • localstorage
  • cookie

区别在于,存在localstorage里时,请求时只设置了Authorization header。而存在cookie里时,除了Authorization header,http请求的cookie字段会自动带上同域的cookie。 另外一个就是cookie到期会自己清除,而localstorage需要自己清除。

原文观点

仅列出我认为不认同的观点

  1. 认为 httpOnly 传统且要求后端进行精细配置,在跨域调用时会变得复杂
  2. 认为 BFF + cookie 的方式只增加了架构复杂度,因为需要额外维护一个BFF服务

从后台+运维的角度去看,配置的维护成本要比服务的维护成本低。

我的观点

当我写到这里,我忽然意识到,BFF的概念其实就是我们国内所谓的中台。而其最大的用处在于数据处理和聚合,而不是鉴权。

也就是说,原文的思路一其实是无法与其他的鉴权方案在同一纬度去讨论。其他的是网页到后台,而思路一是网页到中台,中台再到后台。

以上,所有其他见解欢迎友好讨论。