0

我有一个 Chrome 扩展程序,它通过使用 Restivus 包创建的 REST API 与我的 Meteor 应用程序通信。

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

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

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

我想有几个选择:

  1. 我正在使用标准的流星帐户包。有没有办法将帐户包使用的任何标准 cookie / 数据推送到用户的浏览器,以便当他访问网站时,他将被视为已登录?
  2. 将自定义 cookie 推送给用户,然后我会在他第一次访问网站时检查并登录他。但是,我不知道如何通过 REST API 推送 cookie 或在 Chrome 扩展程序中生成一个
  3. 使用 DDP 与第二个会话通信并传输登录凭据。

我不知道这些是否是最好的选择(或者甚至如果它们是如何实现它们......)。有没有人想办法做到这一点?谢谢!

4

1 回答 1

0

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

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

然后,将您的用户重定向到带有令牌作为参数的 url。该应用程序检查哪个用户与此令牌相关联并让他登录。

您可以从帐户包中处理注册和重置链接的内容或无密码包中获得灵感。

于 2018-02-23T13:50:37.720 回答