为什么不在服务端拦登录,而是在客户端处理

背景/问题

做授权管理时,更常见的做法是在服务端直接做登录拦截,比如在 proxy.ts 里判断未登录就跳转登录页,或者在服务端根据用户状态决定是否返回内容。这种方式在后台系统里是合理的。

但对于内容型网站来说,目标不是“挡住用户”,而是让用户先看到内容,再决定要不要继续看。同时为了 SEO,还希望页面可以被搜索引擎正常抓取。


服务端拦截的问题

1. 内容页不利于 SEO

最直接的问题就是 SEO。课程页本质是内容页,如果未登录就重定向到登录页,搜索引擎拿到的不是正文,而是跳转结果或登录页,这类页面基本没有索引价值。

2. 服务端判断容易影响 SSG

参考:Next.js + Supabase:为什么你的 SSG 页面会悄悄变成 SSR?

登录后查看完整方案说明

当前仅展示《SSG渲染预览内容 + 登录弹窗实现》的部分内容。页面加载时会自动弹出登录框,若你刚刚关闭了它,点击下面按钮可继续查看完整说明。