设置
我有一个 Rails 应用程序,用户在其中注册一个帐户,并为他们创建一个子域。然后他们可以进入子域并使用他们的凭据登录。工作流程如下所示:
- 用户访问基域填写包含电子邮件/用户名/密码和子域字段的表单
- 根据提交的信息,服务器在全局/公共数据库中创建一个帐户。然后服务器创建一个特定于该特定子域/帐户的数据库,并将用户记录存储在其中。
- 用户被重定向到他们的子域,并要求登录。
(注意:为了实现单独的“数据库”,我使用的是 postgres 模式,但这应该是无关紧要的。)
问题
我的问题涉及第 3 步。我想将用户重定向到他们的子域并自动登录,而不是要求他们登录。但是,我不想在所有子域中共享单个会话。
我想以某种方式安全地传输自动登录请求。
可能的解决方案
我考虑过使用一次性的随机令牌,将其存储在 cookie 和users
表格中。用户成功创建帐户后,他将被重定向到子域。届时,令牌将被消耗/销毁,用户将自动登录。
我还需要一个短窗口,以便在到期前使用令牌。
想法?谢谢!