Je travaille sur une extension Chrome qui nécessitera que l'utilisateur se connecte à un compte afin de voir leur contenu. Ce que je veux faire, c'est empêcher l'utilisateur de se connecter à chaque fois en sauvegardant une sorte de cookie ou localStorage avec les données de connexion/session pertinentes une fois qu'il se connecte. Jusqu'à présent, après un peu de recherche, il semble que l'utilisation de l'API de stockage local Google Chromes serait la meilleure façon de le faire (ce serait génial si quelqu'un pouvait le confirmer).Extension Chrome - enregistrement des détails de connexion pour le popup
Mon problème est avec le réglage et l'obtention du stockage local. J'ai installé un scénario de stockage local factice ici juste pour essayer d'obtenir Chrome pour stocker tout type de stockage local pour l'extension:
Popup.js:
function setCookie(){
chrome.extension.sendMessage({name: 'setLoginCookie'}, function(otherResponse) {
console.log(otherResponse)
})
}
function getCookie(){
chrome.extension.sendMessage({name: 'getloginCookie'}, function(response) {
alert(response)
})
}
event.js:
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
if (request.name == 'setLoginCookie') {
var obj = {test:"test"}
chrome.storage.sync.set(obj, function() {
alert('Data saved');
});
}
if (request.name == 'getLoginCookie') {
chrome.storage.sync.get('test', function(data) {
sendResponse({ screenshotUrl: data.test });
})
}
return true;
});
Lorsque la fonction setCookie est exécutée, j'obtiens l'alerte 'data saved!' ce qui m'indiquerait qu'il a fonctionné mais quand je vérifie le stockage local sur mes extensions dev outils de chrome il n'y a rien là et si j'appelle la fonction getCookie
alors il ne ramasse rien.
Voici les autorisations dans mon manifest.json:
"permissions": [
"storage",
"cookies",
"tabs",
"<all_urls>",
"pageCapture",
"downloads"
],
Ai-je utilisé ici la mauvaise approche? Est-ce que l'utilisation chrome.storage.sync
peut-être où je me suis trompé?
Merci
1. [Inspecter le fichier chrome.storage.sync lors du débogage de l'extension Chrome] (// stackoverflow.com/a/32471596) 2.comment invoquez-vous getCookie? – wOxxOm
Pourquoi ne stockez-vous pas les données directement dans la fenêtre contextuelle? 'chrome.storage.local' est disponible dans n'importe quelle page du contexte d'arrière-plan (y compris les popups) et les scripts de contenu. – Makyen