aboutsummaryrefslogtreecommitdiffhomepage
path: root/main/app/sprinkles/account/assets
diff options
context:
space:
mode:
authorMarvin Borner2018-05-10 20:42:13 +0200
committerMarvin Borner2018-05-10 20:42:13 +0200
commita8d37fab30ccbced5ec8819510ee84893460bb5e (patch)
treed5983c82b866661c71d8683032ce303789847e29 /main/app/sprinkles/account/assets
parentef6fc62a5048afd8467af20b34861ad085566481 (diff)
Began chat encrpytion integration and ECC key generation on registration
Diffstat (limited to 'main/app/sprinkles/account/assets')
-rw-r--r--main/app/sprinkles/account/assets/userfrosting/js/pages/register.js63
-rw-r--r--main/app/sprinkles/account/assets/userfrosting/js/pages/sign-in.js13
2 files changed, 60 insertions, 16 deletions
diff --git a/main/app/sprinkles/account/assets/userfrosting/js/pages/register.js b/main/app/sprinkles/account/assets/userfrosting/js/pages/register.js
index d855bb9..97870a7 100644
--- a/main/app/sprinkles/account/assets/userfrosting/js/pages/register.js
+++ b/main/app/sprinkles/account/assets/userfrosting/js/pages/register.js
@@ -6,9 +6,9 @@
*
* Target page: account/register
*/
-$(document).ready(function() {
+$(document).ready(function () {
// TOS modal
- $(this).find('.js-show-tos').click(function() {
+ $(this).find('.js-show-tos').click(function () {
$("body").ufModal({
sourceUrl: site.uri.public + "/modals/account/tos",
msgTarget: $("#alerts-page")
@@ -17,7 +17,7 @@ $(document).ready(function() {
// Auto-generate username when name is filled in
var autoGenerate = true;
- $("#register").find('input[name=first_name], input[name=last_name]').on('input change', function() {
+ $("#register").find('input[name=first_name], input[name=last_name]').on('input change', function () {
if (!autoGenerate) {
return;
}
@@ -40,26 +40,26 @@ $(document).ready(function() {
// Autovalidate username field on a delay
var timer;
- $("#register").find('input[name=first_name], input[name=last_name], input[name=user_name]').on('input change', function() {
+ $("#register").find('input[name=first_name], input[name=last_name], input[name=user_name]').on('input change', function () {
clearTimeout(timer); // Clear the timer so we don't end up with dupes.
- timer = setTimeout(function() { // assign timer a new timeout
+ timer = setTimeout(function () { // assign timer a new timeout
$("#register").find('input[name=user_name]').valid();
- }, 500);
+ }, 50);
});
// Enable/disable username suggestions in registration page
- $("#register").find('#form-register-username-suggest').on('click', function(e) {
+ $("#register").find('#form-register-username-suggest').on('click', function (e) {
e.preventDefault();
var form = $("#register");
$.getJSON(site.uri.public + '/account/suggest-username')
- .done(function (data) {
- // Set suggestion
- form.find('input[name=user_name]').val(data.user_name);
- });
+ .done(function (data) {
+ // Set suggestion
+ form.find('input[name=user_name]').val(data.user_name);
+ });
});
// Turn off autogenerate when someone enters stuff manually in user_name
- $("#register").find('input[name=user_name]').on('input', function() {
+ $("#register").find('input[name=user_name]').on('input', function () {
autoGenerate = false;
});
@@ -84,10 +84,41 @@ $(document).ready(function() {
validators: registrationValidators,
msgTarget: $("#alerts-page"),
keyupDelay: 500
- }).on("submitSuccess.ufForm", function() {
- // Reload to clear form and show alerts
- window.location.reload();
- }).on("submitError.ufForm", function() {
+ }).on("submitSuccess.ufForm", function () {
+ // GENERATE KEYS
+ var openpgp = window.openpgp;
+ var options;
+ var randomString = Math.random().toString(36).substr(2, 11); // PRIVKEY ENCRYPTION KEY
+ openpgp.initWorker({path: '/assets-raw/core/assets/SiteAssets/js/openpgp.worker.js'});
+ options = {
+ userIds: [{name: $("#r-form-username").val(), email: $("#r-form-email").val()}],
+ curve: "curve25519",
+ passphrase: randomString
+ };
+ openpgp.generateKey(options).then(function (key) {
+ localStorage.setItem("PrivateKey", key.privateKeyArmored);
+ localStorage.setItem("🔒", randomString);
+
+ console.log(key.publicKeyArmored);
+ console.log(key.privateKeyArmored);
+ // SAVE PUBLIC KEY TO DATABASE
+ var data = {
+ csrf_name: site.csrf.name,
+ csrf_value: site.csrf.value,
+ PublicKey: key.publicKeyArmored
+ };
+ $.ajax({
+ type: 'POST',
+ url: site.uri.public + '/api/users/u/' + $("#r-form-username").val() + '/publickey',
+ data: data,
+ success: function (response) {
+ console.log(response);
+ //window.location.reload();
+ }
+ });
+
+ });
+ }).on("submitError.ufForm", function () {
// Reload captcha
$("#captcha").captcha();
});
diff --git a/main/app/sprinkles/account/assets/userfrosting/js/pages/sign-in.js b/main/app/sprinkles/account/assets/userfrosting/js/pages/sign-in.js
index 40a8628..b627f2d 100644
--- a/main/app/sprinkles/account/assets/userfrosting/js/pages/sign-in.js
+++ b/main/app/sprinkles/account/assets/userfrosting/js/pages/sign-in.js
@@ -34,6 +34,19 @@ $(document).ready(function() {
validators: page.validators.login,
msgTarget: $("#alerts-page")
}).on("submitSuccess.ufForm", function(event, data, textStatus, jqXHR) {
+ /* GENERATE KEYS
+ var openpgp = window.openpgp;
+ var options, PublicKey, PrivateKey;
+ openpgp.initWorker({path: '/assets-raw/core/assets/SiteAssets/js/openpgp.worker.js'});
+ options = {
+ userIds: [{user_id: current_user_id}],
+ curve: "curve25519",
+ passphrase: $("input[name='password']") // only local
+ };
+ openpgp.generateKey(options).then(function (key) {
+ PrivateKey = key.privateKeyArmored;
+ PublicKey = key.publicKeyArmored;
+ });*/
redirectOnLogin(jqXHR);
});
});