Я использую токен jwt для аутентификации пользователя на моем веб-сайте, поэтому, как только пользователь входит в систему, я сохраняю токен в localStorage и хочу, чтобы токен был в моем расширении chrome, чтобы пользователь также проходил аутентификацию используя расширение.
Я пытался передать токен, используя chrome.runtime.sendMessage
на стороне реакции и 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: «Uncaught Error: extension.sendRequest, extension.onRequest и extension.onRequestExternal устарели. Пожалуйста, используйте взамен runtime.sendMessage, runtime.onMessage и runtime.onMessageExternal. " Но я уже использую предложенные.
Я также пытался использовать метод chrome.storage.sync.get
для доступа к localStorage из расширения, но не смог заставить его работать.
Пожалуйста, помогите, заранее спасибо!