mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
68 lines
1.4 KiB
JavaScript
68 lines
1.4 KiB
JavaScript
(function() {
|
|
|
|
params={};
|
|
location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(s,k,v){params[k]=v});
|
|
|
|
function finishRegister(url, responseData, fn) {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: url,
|
|
data: JSON.stringify(responseData),
|
|
contentType: 'application/json',
|
|
dataType: 'json',
|
|
})
|
|
.done(function(data) {
|
|
fn(undefined, data);
|
|
})
|
|
.fail(function(xhr, status) {
|
|
$.notify('Error when finish U2F transaction' + status);
|
|
});
|
|
}
|
|
|
|
function startRegister(fn, timeout) {
|
|
$.get('/2ndfactor/u2f/register_request', {}, null, 'json')
|
|
.done(function(startRegisterResponse) {
|
|
u2f.register(
|
|
startRegisterResponse.appId,
|
|
startRegisterResponse.registerRequests,
|
|
startRegisterResponse.registeredKeys,
|
|
function (response) {
|
|
if (response.errorCode) {
|
|
fn(response.errorCode);
|
|
} else {
|
|
finishRegister('/2ndfactor/u2f/register', response, fn);
|
|
}
|
|
},
|
|
timeout
|
|
);
|
|
});
|
|
}
|
|
|
|
function redirect() {
|
|
var redirect_uri = '/login';
|
|
if('redirect' in params) {
|
|
redirect_uri = params['redirect'];
|
|
}
|
|
window.location.replace(redirect_uri);
|
|
}
|
|
|
|
function onRegisterSuccess() {
|
|
redirect();
|
|
}
|
|
|
|
function onRegisterFailure(err) {
|
|
$.notify('Problem authenticating with U2F.', 'error');
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
startRegister(function(err) {
|
|
if(err) {
|
|
onRegisterFailure(err);
|
|
return;
|
|
}
|
|
onRegisterSuccess();
|
|
}, 240);
|
|
});
|
|
|
|
})();
|