Meteor Restivus:如果用户访问主网站

时间:2018-02-21 00:39:20

标签: meteor google-chrome-extension meteor-accounts meteor-restivus

我有一个Chrome扩展程序,可以通过使用Restivus软件包创建的REST API与我的Meteor应用程序进行通信。

用户对REST API进行身份验证,然后使用经过身份验证的令牌进行进一步的请求。

到目前为止,一切正常,只要他留在扩展中。但是,从chrome扩展程序,我想将用户重定向到我的主网站上的个人资料页面。发生这种情况时,他不再进行身份验证,必须重新登录才能访问个人资料页面。

我认为这是因为REST API会话和网页会话是服务器上两个完全不同的会话(即使API和网页都是从同一台服务器运行)。我的问题是,当他从扩展程序移动到主网站时,有没有办法维护用户的登录状态?

我认为有几个选择:

  1. 我正在使用标准的流星帐户包。有没有办法将帐户包使用的任何标准cookie /数据推送到用户的浏览器,这样当他访问网站时,他会被视为已登录?
  2. 将一个自定义cookie推送给用户,然后我检查并在他第一次访问该网站时登录。但是,我不知道如何通过REST API推送cookie或在Chrome扩展程序中生成cookie
  3. 使用DDP与第二个会话通信并传输登录凭据。
  4. 我不知道这些是否是最佳选择(如果它们是......,甚至如何实施它们)。有没有人想出办法呢?谢谢!

1 个答案:

答案 0 :(得分:0)

我建议您使用令牌作为URL参数来开发自己的身份验证流程。你应该获得类似于slack提供的与魔术身份验证链接相似的体验

我们的想法是生成一个令牌,并将其添加到Chrome扩展程序中登录用户的Meteor.users集合中。

然后,将您的用户重定向到以令牌作为参数的网址。该应用程序会检查哪个用户与此令牌链接并将其登录。

您可以从帐户包to handle enrollment and reset linkspasswordless

中完成的操作获得灵感