从反应网页发送jwt令牌到chrome扩展

时间:2019-05-29 00:02:50

标签: javascript reactjs google-chrome-extension

我正在使用jwt令牌在我的网站上进行用户身份验证,因此,一旦用户登录,我便将该令牌存储在localStorage中,并且我希望在我的chrome扩展程序中使用该令牌,以便在验证用户身份的同时使用扩展名。

我已经尝试过使用React侧的chrome.runtime.sendMessage和Chrome侧的chrome.runtime.onMessageExternal.addListener传递令牌来连接令牌,但这没用。

在manifest.json中,我指定了与我的网站进行通信的扩展名

  "externally_connectable": {
    "matches": ["http://localhost:3000/"]
  }
// example from https://developer.chrome.com/extensions/messaging
// The ID of the extension we want to talk to.
var editorExtensionId = "abcdefghijklmnoabcdefhijklmnoabc";

// Make a simple request:
chrome.runtime.sendMessage(editorExtensionId, {openUrlInEditor: url},
  function(response) {
    if (!response.success)
      handleError(url);
  });

chrome.runtime.onMessageExternal.addListener(
  function(request, sender, sendResponse) {
    console.log('I'm here');
    if (sender.url == blocklistedWebsite)
      return;  // don't allow this web page access
    if (request.openUrlInEditor)
      console.log(request.openUrlInEditor);
  });

我认为未发送消息是因为我在控制台中没有看到任何内容,并且在chrome扩展程序中收到一条错误消息,提示“未捕获的错误:不推荐使用extension.sendRequest,extension.onRequest和extension.onRequestExternal。请改用runtime.sendMessage,runtime.onMessage和runtime.onMessageExternal。”但是我已经在使用建议的了。

我还尝试使用chrome.storage.sync.get方法从扩展名访问localStorage,但无法使其正常工作。

请帮助,谢谢!

0 个答案:

没有答案