2

网站管理后台适合前后端分离,做成 SPA 吗?

 2 years ago
source link: https://www.v2ex.com/t/844419
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

V2EX  ›  云计算

网站管理后台适合前后端分离,做成 SPA 吗?

  theklf4 · 1 天前 · 1955 次点击

感觉挺适合的,后台完全不需要 SEO ,超旧版本浏览器兼容性也不是非常重要 就是感觉如果不搞个前置 basic_auth 的话未登录 /低权限账号也可以看到 main.xxx.js 导致全部接口信息泄露 一般是怎么处理?

28 条回复    2022-04-02 22:01:05 +08:00

ragnaroks

ragnaroks      1 天前

接口本来就是公开的,做好鉴权就行

与其做成 SPA 不如考虑下 SSG ,举个例子某管理员 A 可以复制某个特定功能的链接直接发给管理员 B

Hanggi

Hanggi      1 天前

后端网站限制访问,限制 IP

Chism

Chism      1 天前

容易被反推有哪些页面,甚至页面的某些内容。
纯后端渲染,没权限就无法提前看到路由和网页结构

pengtdyd

pengtdyd      1 天前

啊!!!!你是不是搞 IT 的哦,前后端分离 5 年前就大行其道了好吧。

815979670

815979670      1 天前   ❤️ 1

这个情况看,项目大不大,团队的构成,采用的语言等等。
如果:项目不大,就一两个人后端开发维护,用的还是 PHP 语言,那自然是 MVC 更方便。
如果:项目不大,但有一个前端,有一个后端 那前后端分离,我写我的接口,你写你的页面 每个人都能专注自己的部分
如果:项目很大,N 个前端,N 个后端,那么前后端分离,通过共享来传递接口文档,各司其职 后期重构也可以单独重构前端或者单独重构后端。

BaiLinfeng

BaiLinfeng      23 小时 29 分钟前

啥意思啊,直接看不懂

wunonglin

wunonglin      20 小时 42 分钟前

接口信息泄露?网站接口都是控制台直接看到,你指的泄露是什么意思?

murmur

murmur      17 小时 24 分钟前

后端不搞鉴权是在开玩笑么,企业应用做假鉴权是因为大家都是抬头不见低头见,互联网应用敢不做数据权限的?

gouflv

gouflv      16 小时 47 分钟前 via iPhone

感觉回到 10 年前

GeruzoniAnsasu

GeruzoniAnsasu      16 小时 46 分钟前

1. 接口信息是不应该怕泄露的,有很多业务甚至为了方便自动化会主动把接口暴露并提供规范的使用方法
2. 鉴权和 csrf token 之类的东西早都已经纳入各种框架中了,都可以拿起来就用,不用担心实现难度
3. 前端的 distribution 版 js 都是压缩混淆过的东西,一般人可看不懂,甚至就算不压缩混淆,框架的源码复杂度已经足以令人发指了

ccyu220

ccyu220      16 小时 42 分钟前

看标题我以为现在是 2012 年

sjzjams

sjzjams      16 小时 40 分钟前

进来我就看成做 SPA 。。

superfatboy

superfatboy      16 小时 39 分钟前

看标题我以为现在是 2011 年

focuxin

focuxin      16 小时 32 分钟前

前端做路由守卫,后端做好接口鉴权,js 本来就是透明的,再说现在前端工程的复杂性,代码都是压缩的,看接口请求开发者工具直接就能看到。

joesonw

joesonw      16 小时 5 分钟前 via iPhone

可以 spa 都管理节目前面放一个表单登陆,登陆了才去到有 js 的页面。而且一般公司不都走统一登陆了吗,一样的效果。

wowbaby

wowbaby      16 小时 2 分钟前

我之前后台都用单应用模式,路由鉴权很是麻烦,后换成 MVC 再引入 Vue ,个人觉得方便多了,两者的优势都发挥了

ijse

ijse      16 小时 1 分钟前

当你考虑构建的软件应该是什么样子时,你需要先考虑一下你的组织架构应该是什么样子。它们总是相辅相生的。

encro

encro      15 小时 35 分钟前

@ragnaroks

别吓人,
管理后台做 SSG ,难道要为每一条内容生成一个页面?
直接 SPA 也是支持路由和复制的。

一般只有前台才需要 SSR 和 SSG 。

Envov

Envov      14 小时 29 分钟前

main.xxx.js 可以做成 lazy load ,访问特定路由才加载特定的 chunkjs

ragnaroks

ragnaroks      13 小时 43 分钟前

@encro 你对 SSG 的理解有误

libook

libook      13 小时 37 分钟前

接口不泄露也要做好鉴权,鉴权做好了泄露也无所谓。

encro

encro      12 小时 40 分钟前

@ragnaroks

你说的 SSG 不是服务端生成?

ragnaroks

ragnaroks      12 小时 11 分钟前

@encro 是服务端生成,SSG 尤其适合纯静态前端与数据后端合作,并不存在所谓每一条内容生成一个页面,而是每个路由在没有后端支持的情况下仍然可达,即使是文章很多的类 CMS 项目也不存在一个文章生成一个页面,PWA 就是带 SW 的 SSG ;假设你理解 SSG 那么我姑且认为你只了解过其使用方式但从没实际生产过;如果你认为我说的不对,你完全可以以你自己的理解为准,不用回复我

encro

encro      11 小时 33 分钟前

@ragnaroks

真没找到后台采用 SSG 的案例,非常希望赐教。

encro

encro      11 小时 28 分钟前

@ragnaroks

我只知道一些 Blog 或者 CMS 前端采用 SSG ,主要解决性能、安全和 SEO 问题。

按你回复我都搞不清楚 SSR 和 SSG 的英文意义和区别了。

ragnaroks

ragnaroks      10 小时 16 分钟前   ❤️ 1

@encro
阿里云用户后台和腾讯云用户后台都是 SSG

假设有一个路由 /user/signin-history/[dateRange]

SPA: 直接访问为 notfound ,需要 nginx 之类提供 404 回落

SSG: 可直接访问,页面展示部分不可变数据,最新数据需要额外 HTTP 请求

SSR: 可直接访问,页面已展示对应最新数据

适用于楼主的场景,假设这里是一个用户管理系统,管理员 A 打开某个用户的详情页 /user-magane/user-list/[uid]/detail/,这个用户行为异常需要移交技术核查,则可以直接将这个地址发给技术人员,技术打开页面直接做后续处理

事实上 SPA 、SSG 、SSR 是一类技术,SSG 就是有路由支持的 SPA ,SSR 就是不需要客户端 js 支持的 SSG ; SSR 太重而 SPA 太慢(需要加载所有 chunk )

与早期技术对比,比如 dz 、phpcms ,最接近的是 SSR 而不是 SSG

你在第 25 楼的第一行观点完全准确,但后台管理用 SSG 主要是后台管理往往模块很多,利用 SSG 做 chunk 拆分可实现增量更新,而且加载速度快,而 SPA 只适合工具类网站比如在线计算器

可能是一些静态网站生产工具都是面向内容产生设计,最终产出 *.html 导致你对 SSG 有一些错误了解

ragnaroks

ragnaroks      10 小时 14 分钟前

补充一个,使用 nodejs 承载的不一定就是 SSR ,也可能是 SSG ,但 SSG 不需要 nodejs 承载

encro

encro      3 小时 20 分钟前

@ragnaroks

抱歉你可能还是无法说服我吧。

客户端渲染 BSR (Broswer Side Render)
静态站点生成 SSG (Static Site Generation)
服务端渲染 SSR (Server Side Render)

我的理解 SSG 就是静态页面生成。
我用过的 nuxt,Next,vite 官方文档里面 SSG 也是静态站点生成这个意义。
至于 dz 、phpcms 这种我叫他 AJAX ,因为他就没有 nodejs 什么事。

我看到阿里云文档这种,可能属于是 ssr 也可能属于 ssg ,这个不属于管理后台。
至于说控制台,我认为他就属于 ajax 或者 SPA ,没有 SSR 和 ssg 什么事。

我认为管理后台,还是用 spa 或者 ajax 方式好,用 SSR 和和 SSG 属于没有事情干了?

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK