2012-03-14 4 views
1

확장 기능을 사용할 때마다 사용자가 Google 서버에서 인증을 받아야하는 Chrome 확장 프로그램을 개발 중입니다. 사용자가 자격 증명을 입력하면 확장 프로그램에서이 정보를 영원히 기억할 수있는 '내 정보 기억'기능을 구현하려고합니다. 내가 만난 문제는 Chrome이 사용자가 현재 웹 사이트에 자격 증명을 연결한다는 것입니다.크롬 - LocalStorage - 모든 URL에 값 저장

지금 사용자가 google.com에서 자격증 명을 입력하면 시스템은 wikipedia.org가 아닌 google.com에서만 자격증 명을 기억합니다. 내가 원하는 것은 모든 도메인에서 자격 증명이 기억된다는 것입니다.

는 자격 증명을 읽으려면 :

username = localStorage["username"]; 
password = localStorage["password"]; 

가 자격 증명을 저장하려면 자격 증명이있는 경우

localStorage["username"] = username; 
localStorage["password"] = password; 

확인하려면

if (localStorage["username"] != "") {...} 

답변

2

을 Chrome 확장에서 콘텐츠 스크립트를 웹 페이지와 동일한 프로세스 및 동일한 도메인 (예 : https://www.google.com)으로 실행됩니다. 한편 모든 확장 팝업 및 배경 페이지는 '확장 프로그램'프로세스에서 실행되며 고유 한 출처를 공유합니다 (예 : 'eakjnniffhfegdpfehmnpcmjiameincp'). 따라서 콘텐트 스크립트에서 localStorage["username"]에 액세스하면 실제로 예를 들어에 속한 localStorage에 액세스하는 것입니다. https://www.google.com. 당신이 정보가 확장에서 다른 콘텐츠 스크립트 사이에 공유하고자 할 경우

그래서, 당신은 배경 페이지에 localStorage에 데이터를 저장하고 chrome.extension.sendRequest 또는 chrome.extension.connect를 호출하여 그것에 콘텐츠 스크립트에서 메시지를 보내야합니다. 또는 chrome.tabs.sendRequest 또는 chrome.tabs.connect을 호출하여 배경 페이지에서 콘텐츠 스크립트로 메시지를 보내십시오.

사용자가 google.com 및 wikipedia에서 동일한 비밀번호를 사용한다고 가정하는 데이터 모델을 다시 생각해 볼 필요가 있습니다.

+0

올바른 방향으로 나를 가리켜 주셔서 감사합니다 :) – Jon

+0

또한, 탭이 닫히거나 브라우저가 종료되거나 컴퓨터가 종료 된 후에도 localStorage에 저장된 데이터가 제거되지 않도록하는 방법이 있습니까? – Jon

+0

누군가가 확장 프로그램을 제거하지 않으면 localStorage가 지워지지 않습니다. – yonran