mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-13 14:44:43 -04:00
Rename common.js to login.js
This commit is contained in:
parent
c2a8911b9c
commit
0fca629c34
5 changed files with 14 additions and 7 deletions
92
public/js/lib/common/login.js
Normal file
92
public/js/lib/common/login.js
Normal file
|
@ -0,0 +1,92 @@
|
|||
import { serverurl } from '../config';
|
||||
|
||||
let checkAuth = false;
|
||||
let profile = null;
|
||||
let lastLoginState = getLoginState();
|
||||
let lastUserId = getUserId();
|
||||
let loginStateChangeEvent = null;
|
||||
|
||||
export function setloginStateChangeEvent(func) {
|
||||
loginStateChangeEvent = func;
|
||||
}
|
||||
|
||||
export function resetCheckAuth() {
|
||||
checkAuth = false;
|
||||
}
|
||||
|
||||
export function setLoginState(bool, id) {
|
||||
Cookies.set('loginstate', bool, {
|
||||
expires: 365
|
||||
});
|
||||
if (id) {
|
||||
Cookies.set('userid', id, {
|
||||
expires: 365
|
||||
});
|
||||
} else {
|
||||
Cookies.remove('userid');
|
||||
}
|
||||
lastLoginState = bool;
|
||||
lastUserId = id;
|
||||
checkLoginStateChanged();
|
||||
}
|
||||
|
||||
export function checkLoginStateChanged() {
|
||||
if (getLoginState() != lastLoginState || getUserId() != lastUserId) {
|
||||
if(loginStateChangeEvent) {
|
||||
loginStateChangeEvent();
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export function getLoginState() {
|
||||
const state = Cookies.get('loginstate');
|
||||
return state === "true" || state === true;
|
||||
}
|
||||
|
||||
export function getUserId() {
|
||||
return Cookies.get('userid');
|
||||
}
|
||||
|
||||
export function clearLoginState() {
|
||||
Cookies.remove('loginstate');
|
||||
}
|
||||
|
||||
export function checkIfAuth(yesCallback, noCallback) {
|
||||
const cookieLoginState = getLoginState();
|
||||
if (checkLoginStateChanged())
|
||||
checkAuth = false;
|
||||
if (!checkAuth || typeof cookieLoginState == 'undefined') {
|
||||
$.get(`${serverurl}/me`)
|
||||
.done(data => {
|
||||
if (data && data.status == 'ok') {
|
||||
profile = data;
|
||||
yesCallback(profile);
|
||||
setLoginState(true, data.id);
|
||||
} else {
|
||||
noCallback();
|
||||
setLoginState(false);
|
||||
}
|
||||
})
|
||||
.fail(() => {
|
||||
noCallback();
|
||||
})
|
||||
.always(() => {
|
||||
checkAuth = true;
|
||||
});
|
||||
} else if (cookieLoginState) {
|
||||
yesCallback(profile);
|
||||
} else {
|
||||
noCallback();
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
checkAuth,
|
||||
profile,
|
||||
lastLoginState,
|
||||
lastUserId,
|
||||
loginStateChangeEvent
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue