第 5 节:多个项目如何统一账号,并自动回到原项目

图文课 第 5 / 10 节 2026-11-11 4 分钟阅读 👁 2 阅读 💬 1 评论
HORU 跨境社区实战第 05 节封面,多个项目一个账号,概念插画

HORU 跨境社区实战 · 第 05 节

拆解统一 account 入口、来源提示、安全回跳以及旧账号兼容,避免让用户手动选择项目。

本文记录 HORU 跨境社区 的实际建设过程。HORU(horu.world)同时提供蜡笔小账本、租的值与博客,各项目使用统一身份入口。文中历史页面和验收记录按当时状态说明。

统一入口要保留来源

从记账页面打开登录,用户期待继续记账;从社区打开登录,用户期待回到社区。HORU 把登录和注册收口到 /account/,由入口自动携带项目来源和返回地址。页面展示当前场景的提示,不设置让用户重新挑选项目的选择器。这个决定减少了登录过程中的额外判断。

参数表达上下文,不决定权限

来源参数用于呈现文案和确定安全的后续路径。服务器仍需验证账号身份,并在进入项目时检查权限。把 project 改成另一个值,不应该让普通账号取得管理能力。同一个 HORU 身份可以使用多个产品,各产品的数据与角色仍由各自规则管理。

返回地址需要限制范围

登录成功后直接跳转用户提供的任意网址,会带来开放重定向问题。更合理的做法是只接受允许范围内的本地路径,并在解析失败时返回该项目的默认入口。还要检查双斜线、编码后的路径和不在允许范围内的管理地址。回跳成功与目标页面有权访问是两次不同检查。

旧账号是迁移的一部分

统一账号不能通过清空旧用户来完成。HORU 的记账旧账号和账本需要保留,原有登录方式也要考虑兼容。同一邮箱在历史系统中可能有不同密码或身份记录,这类冲突应先核验归属再关联。仅凭邮箱相同就覆盖另一份密码,会破坏已有用户的登录能力。

注册和找回共用身份体系

新用户在统一入口完成邮箱验证后创建身份,再进入来源项目。忘记密码同样需要围绕已经绑定的邮箱处理。前端提供入口只是开始,服务端必须执行验证、失效时间、尝试限制和密码更新等操作。不同项目的旧注册窗口也要收口,否则用户仍可能绕过新流程。

从入口逐一验证

把官网、博客、记账、租房和社区的所有登录按钮列出来,分别检查链接、场景提示和回跳。再用普通账号访问管理路径,确认服务端拒绝越权。验收不应只从 /account/ 直接打开,因为真实用户往往从其他项目进入,遗漏通常发生在这些入口。

把这一节用到自己的项目

先选一个真实入口或一条测试数据,按下面的顺序记录结果,再扩大检查范围。

  1. 各项目按钮均进入 account
  2. 返回地址限制在允许范围
  3. 普通用户不能通过来源参数越权

入口参数示例

/account/?project=community&return=%2Fcommunity%2F

这个地址表达社区来源和回到社区首页的意图。服务端仍需验证返回路径和目标权限,不能把 URL 参数当作授权凭据。

继续阅读本系列

HORU 跨境社区实战 · 完整目录

  1. 第 1 节:为什么做跨境社区,以及第一版解决什么问题
  2. 第 2 节:从招聘、货源、服务商到项目合作,如何组织社区内容
  3. 第 3 节:社区首页、帖子详情和发布页如何设计
  4. 第 4 节:手机端如何适配阅读、搜索和发帖
  5. 第 5 节:多个项目如何统一账号,并自动回到原项目
  6. 第 6 节:邮箱注册与忘记密码,怎样验证真实发送和收件
  7. 第 7 节:如何统一超级管理员、项目权限与后台入口
  8. 第 8 节:清理演示帖子和虚假统计,让后台反映真实数据
  9. 第 9 节:社区如何接入官网,以及如何做上线验收
  10. 第 10 节:如何让搜索引擎与 AI 理解社区和系列文章

封面为 AI 辅助制作的主题插画,正文中的界面截图另有说明。项目入口:HORU 跨境社区 · HORU 官网