2012-03-14 3 views
1

拡張機能を使用するたびにユーザーがGoogleサーバーで認証される必要があるChrome拡張機能を開発しています。私は 'Remember Me'機能を実装しようとしています。ユーザーがクレデンシャルに入力すると、その拡張機能は永遠にそれを覚えています。私が遭遇した問題は、Chromeがユーザーの現在のWebサイトに資格情報を関連付けるということです。Chrome - LocalStorage - すべてのURLに値を保存する

今のところ、ユーザーがgoogle.comで資格情報を入力すると、システムは自分の資格情報をwikipedia.orgではなくgoogle.comにのみ保存します。私がしたいのは、すべてのドメインで資格情報が記憶されるということです。

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

資格情報保存するには:Chromeの拡張機能で

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

答えて

2

を、コンテンツスクリプト:資格情報が存在するかどうかを確認するには

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

を資格情報を読み取ることが

Webページと同じプロセスと同じドメイン(例: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

関連する問題