api - login/out possible
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
|
||||
?>
|
||||
|
||||
const apiUrl = '<?php echo SERVER_ADDR; ?>/api/';
|
||||
|
||||
var randomId = function() { return '_' + Math.random().toString(36).substr(2, 9); }
|
||||
|
||||
var badges = {
|
||||
@@ -96,8 +98,115 @@ var toastWarn = function (text, time = 3000) { return makeToast('bg-yellow1-dar
|
||||
var toastInfo = function (text, time = 3000) { return makeToast('bg-blue2-dark', 'fa-info', text, time); }
|
||||
var toastError = function (text, time = 3000) { return makeToast('bg-red2-dark', 'fa-times', text, time); }
|
||||
|
||||
var login = function() {
|
||||
showLoader();
|
||||
var username = $('#input-login-username').val();
|
||||
var password = $('#input-login-password').val();
|
||||
$('#input-login-username').val('');
|
||||
$('#input-login-password').val('');
|
||||
$.ajax({
|
||||
url: apiUrl + 'login',
|
||||
method: 'POST',
|
||||
data: {
|
||||
username: username,
|
||||
password: password,
|
||||
device: navigator.userAgent
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
if (xhr.status == 401) {
|
||||
toastError('Benutzername oder Passwort falsch');
|
||||
$('#input-login-username').val(username);
|
||||
} else if (xhr.status == 0) {
|
||||
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um Dich anzumelden');
|
||||
$('#menu-login').hideMenu();
|
||||
} else {
|
||||
console.log('Login: unbekannter Fehler', status, error);
|
||||
console.log(xhr);
|
||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
||||
}
|
||||
hideLoader();
|
||||
},
|
||||
success: function (data, status, xhr) {
|
||||
localStorage.setItem('auth_id', data.id);
|
||||
localStorage.setItem('auth_hash', data.auth);
|
||||
localStorage.setItem('auth_user', data.user);
|
||||
localStorage.setItem('auth_username', data.username);
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var logoutClearStorage = function() {
|
||||
localStorage.removeItem('auth_id');
|
||||
localStorage.removeItem('auth_hash');
|
||||
localStorage.removeItem('auth_user');
|
||||
localStorage.removeItem('auth_username');
|
||||
location.reload();
|
||||
}
|
||||
|
||||
var logout = function() {
|
||||
showLoader();
|
||||
var auth = {
|
||||
id: localStorage.getItem('auth_id'),
|
||||
hash: localStorage.getItem('auth_hash')
|
||||
}
|
||||
if ((auth.id === null) || (auth.hash === null)) {
|
||||
console.log('Not logged in');
|
||||
logoutClearStorage();
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
url: apiUrl + 'logout',
|
||||
method: 'POST',
|
||||
data: {
|
||||
auth: auth
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
if (xhr.status == 401) {
|
||||
console.log('Not logged in');
|
||||
logoutClearStorage();
|
||||
} else if (xhr.status == 0) {
|
||||
console.log('Could not delete auth from server');
|
||||
logoutClearStorage();
|
||||
} else {
|
||||
console.log('Logout: unbekannter Fehler', status, error);
|
||||
console.log(xhr);
|
||||
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
|
||||
hideLoader();
|
||||
}
|
||||
},
|
||||
success: function (data, status, xhr) {
|
||||
logoutClearStorage();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var initRegatten = function() {
|
||||
loggedin = true;
|
||||
loggedin = (localStorage.getItem('auth_id') !== null);
|
||||
|
||||
if (loggedin) {
|
||||
var auth = {
|
||||
id: localStorage.getItem('auth_id'),
|
||||
hash: localStorage.getItem('auth_hash')
|
||||
}
|
||||
var user = {
|
||||
id: localStorage.getItem('auth_user'),
|
||||
name: localStorage.getItem('auth_username')
|
||||
}
|
||||
if ((auth.hash === null) || (user.id === null) || (user.name === null)) {
|
||||
logoutClearStorage();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (loggedin) {
|
||||
$('.show-notloggedin').css('display', 'none');
|
||||
$('.replace-userid-href').attr('href', $('.replace-userid-href').attr('href').replace('%USERID%', user.id));
|
||||
$('.replace-username').html(user.name);
|
||||
} else {
|
||||
$('.show-loggedin').css('display', 'none');
|
||||
}
|
||||
|
||||
if (typeof siteScript !== 'undefined') {
|
||||
siteScript();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user