/
login.js
43 lines (39 loc) · 1.48 KB
/
login.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const defaultGroupId = "default";
const keyUserId = "userId";
const keyUserName = "userName";
const keyAuthProvider = "authProvider";
const keyAuthToken = "authToken";
function handleAuthGoogle(response) {
const tokenEncoded = response.credential;
// Decode the JWT token
const tokenDecoded = jwt_decode(tokenEncoded);
localStorage.setItem(keyUserId, `${tokenDecoded.iss}/${tokenDecoded.sub}`);
localStorage.setItem(keyAuthToken, tokenEncoded);
window.location.assign("pub.html");
}
function handleAuthTelegram(user) {
localStorage.setItem(keyUserId, `tg://user?id=${user.id}`);
localStorage.setItem(keyUserName, user.first_name);
localStorage.setItem(keyAuthProvider, "Telegram");
const token = Base64.encode(JSON.stringify(user));
localStorage.setItem(keyAuthToken, token);
window.location.assign("pub.html");
}
function logout() {
const userName = localStorage.getItem(keyUserName);
const authProvider = localStorage.getItem(keyAuthProvider);
if (confirm(`Confirm exit for user ${userName} (${authProvider})?`)) {
localStorage.removeItem(keyUserName);
localStorage.removeItem(keyUserId);
localStorage.removeItem(keyAuthToken);
localStorage.removeItem(keyAuthProvider);
window.location.assign("login.html");
}
}
function checkSessionExists() {
const userId = localStorage.getItem(keyUserId);
if (userId != null) {
// already logged in
window.location.assign("pub.html");
}
}