如何使用Chrome扩展程序与Firebase Webapp进行通信以避免重复登录

时间:2020-03-24 15:02:36

标签: google-chrome-extension google-cloud-firestore firebase-authentication

我在创建外部网页和chrome扩展程序之间的通信时遇到问题。我想我需要这样的东西。

  1. 用户尝试使用Firebase身份验证(使用google / fb /电子邮件-密码提供程序)以“ example.com”上的登录表单登录
  2. 如果用户成功登录,则相同的凭据将发送到chrome扩展程序
  3. 该扩展程序使用已获取的凭据调用signInWithCredential,然后尝试再次登录
  4. 如果一切正常,则用户可以使用context_script使用firebase dB

但这是这样做的正确方法吗?将凭证(例如电子邮件/密码,令牌)从网页发送到扩展名(即使我使用带有扩展名ID的runtime.sendMessage仅将数据发送到特定扩展名)是一种安全的解决方案?

当前,Web应用程序和扩展身份验证分别工作。如果用户通过Web应用程序登录,扩展名则不知道,反之亦然。我需要进行类似Grammarly或moz.com的通信,在这种情况下,用户可以通过网页登录,之后,他将不需要通过扩展程序登录即可使用其帐户。

1 个答案:

答案 0 :(得分:0)

您肯定要做的就是将您的授权令牌(我想这是登录后存储在cookie中吗?)传递给插件,然后按照Bearer语法使用此请求向您的服务发送请求?

您可以通过在用户点击特定页面时将其写入chrome.storage来将其添加到扩展中(如果未找到令牌或令牌已过期,单击扩展可将用户定向到该页面),然后进行设置令牌:

chrome.storage.sync.set({ access_token: sometoken }, function() {
  console.log('Value is set to ' + sometoken);
});
相关问题