3

问题

在创建帐户时,我希望用户以 username.domain-name.com 的身份访问他们的个人资料

我也有网站功能:

username.domain-name.com/feature1
username.domain-name.com/feature2
username.domain-name.com/feature3

如果上面的用户允许他访问,上面的链接可能包含其他用户可以访问的内容。

示例: user1.domain-name.com/feature1,此处 user1 已授予 user2 访问权限 因此,user2 已登录并在访问user1.domain-name.com/feature1时应该能够看到内容。

到目前为止我的研究:

我尝试了以下链接:

https://kadira.io/blog/meteor/sharing-meteor-login-state-between-sub-domains https://github.com/jfrolich/meteor-subdomain-persistent-login

看了很多,发现meteor有localStorage作为存储用户登录信息的方式。所以,我必须设法将详细信息传递给子域。我还尝试在 nginx 配置中使用 proxy_pass 来执行以下操作:请求: username.domain-name.com/feature1应该代理到(不重定向 URL 将是相同的)domain-name.com/username/feature1

如果有人在这里对我应该使用的方法有所了解,那真的会对我有所帮助。

我知道这种设计可能不适合搜索引擎。

更新

我现在成功地使用了以下设计:如果 user1 在 domain-name.com 登录并想要访问他自己的个人资料页面,例如 user1.domain-name.com/profile。

第 1 步:user1 访问 user1.domain-name.com/profile 它重定向到 domain-name.com,其中 user1 在 localstorage 中有会话,然后读取 HTTP 标头引用我得到 user1.domain-name.com/profile 并准备新的 url:user1。 domain-name.com/profile?token=userToken (我可能会在数据库中创建另一个临时令牌,只需单击一次。)

步骤 2:重定向到新的 url user1.domain-name.com/profile?token=userToken,使用 get 参数我在本地存储中创建新会话并将 user1 重定向回 user1.domain-name.com/profile。

这是一个非常规的解决方案,我还在重新寻找。

4

0 回答 0