aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/u2f.js
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/js/u2f.js
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/js/u2f.js')
-rw-r--r--srcs/phpmyadmin/js/u2f.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/js/u2f.js b/srcs/phpmyadmin/js/u2f.js
new file mode 100644
index 0000000..8c36f1a
--- /dev/null
+++ b/srcs/phpmyadmin/js/u2f.js
@@ -0,0 +1,57 @@
+/* global u2f */ // js/vendor/u2f-api-polyfill.js
+
+AJAX.registerOnload('u2f.js', function () {
+ var $inputReg = $('#u2f_registration_response');
+ if ($inputReg.length > 0) {
+ var $formReg = $inputReg.parents('form');
+ $formReg.find('input[type=submit]').hide();
+ setTimeout(function () {
+ // A magic JS function that talks to the USB device. This function will keep polling for the USB device until it finds one.
+ var request = JSON.parse($inputReg.attr('data-request'));
+ u2f.register(request.appId, [request], JSON.parse($inputReg.attr('data-signatures')), function (data) {
+ // Handle returning error data
+ if (data.errorCode && data.errorCode !== 0) {
+ if (data.errorCode === 5) {
+ Functions.ajaxShowMessage(Messages.strU2FTimeout, false);
+ } else {
+ Functions.ajaxShowMessage(
+ Functions.sprintf(Messages.strU2FError, data.errorCode), false
+ );
+ }
+ return;
+ }
+
+ // Fill and submit form.
+ $inputReg.val(JSON.stringify(data));
+ $formReg.trigger('submit');
+ });
+ }, 1000);
+ }
+ var $inputAuth = $('#u2f_authentication_response');
+ if ($inputAuth.length > 0) {
+ var $formAuth = $inputAuth.parents('form');
+ $formAuth.find('input[type=submit]').hide();
+ setTimeout(function () {
+ // Magic JavaScript talking to your HID
+ // appid, challenge, authenticateRequests
+ var request = JSON.parse($inputAuth.attr('data-request'));
+ u2f.sign(request[0].appId, request[0].challenge, request, function (data) {
+ // Handle returning error data
+ if (data.errorCode && data.errorCode !== 0) {
+ if (data.errorCode === 5) {
+ Functions.ajaxShowMessage(Messages.strU2FTimeout, false);
+ } else {
+ Functions.ajaxShowMessage(
+ Functions.sprintf(Messages.strU2FError, data.errorCode), false
+ );
+ }
+ return;
+ }
+
+ // Fill and submit form.
+ $inputAuth.val(JSON.stringify(data));
+ $formAuth.trigger('submit');
+ });
+ }, 1000);
+ }
+});