Generate a random API key on initial setup (fixes #1118)

Also makes the javascript implementation use the same algorithm for
generating random strings.
This commit is contained in:
Jakob Borg
2014-12-29 13:48:26 +01:00
parent 8c7f1421c6
commit 20d30a80be
4 changed files with 26 additions and 11 deletions

View File

@@ -104,15 +104,12 @@ function decimals(val, num) {
return decs;
}
function randomString(len, bits) {
bits = bits || 36;
var outStr = "",
newStr;
while (outStr.length < len) {
newStr = Math.random().toString(bits).slice(2);
outStr += newStr.slice(0, Math.min(newStr.length, (len - outStr.length)));
function randomString(len) {
var i, result = '', chars = '01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-';
for (i = 0; i < len; i++) {
result += chars[Math.round(Math.random() * (chars.length - 1))];
}
return outStr.toLowerCase();
return result;
}
function isEmptyObject(obj) {

View File

@@ -994,7 +994,7 @@ angular.module('syncthing.core')
};
$scope.setAPIKey = function (cfg) {
cfg.APIKey = randomString(30, 32);
cfg.APIKey = randomString(32);
};
$scope.showURPreview = function () {