マニフェストファイルにユーザー固有の値を含めないでください。より良いアプローチは、拡張機能の永続性を使用することです。
このようなIDを定義する論理的な場所の1つは、オプションページです。
もう1つの可能なオプションは、次のロジックに従うバックグラウンドスクリプトです。
var userid = localStorage.getItem('userid');
if (!userid) {
// Create new useruid, either via a server-side script, or client-side
// ...
localStorage.setItem('userid', 'new user id');
}
この例では、localStorage
永続性を有効にするために使用しました。代わりにChrome20以降を使用することもできます。これにより、ユーザーはプロファイルと設定を同期できます。chrome.storage
最初の実行時にIDをチェックして取得する代わりに、サーバー側でロジックを実装することもできます。たとえば、サーバーの応答形式がJSONであると仮定します。次に、応答でuidを定義するだけです(オプションで、変更された場合のみ)。
var userid = localStorage.getItem('userid');
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/feeds/json?userid=' + userid);
xhr.onload = function() {
var response = JSON.parse(xhr.responseText);
if (response.userid) { // Set new uid if needed
localStorage.setItem('userid', userid = response.userid);
}
// ... your application's logic ...
};
xhr.send();
サーバーは以下を実装する必要があります。
- リクエスト(クエリ文字列?)に
userid
キーが含まれている場合は、ユーザーIDが有効で既知であるかどうかを確認してください。
- が無効な場合
userid
は、生成して応答に含めます。
- ここでのアプリケーションのロジック
これにより、応答は次のようになります(PHPを使用してJSONを生成するには、を使用しますjson_encode
):
{"userid":"some unique user identifier", ....}