-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauth-handler.js
More file actions
67 lines (59 loc) · 2.85 KB
/
Copy pathauth-handler.js
File metadata and controls
67 lines (59 loc) · 2.85 KB
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
* Authentication Handler Module
* Модуль обработки аутентификации
*
* This module handles Google authentication and guest access functionality
* Этот модуль обрабатывает аутентификацию через Google и функционал гостевого доступа
*/
// Import Firebase modules and configuration
// Импорт модулей и конфигурации Firebase
import { auth, provider, db } from "./firebase-init.js";
import { signInWithPopup } from "https://www.gstatic.com/firebasejs/11.7.3/firebase-auth.js";
import { doc, setDoc } from "https://www.gstatic.com/firebasejs/11.7.3/firebase-firestore.js";
// Handle Google login button click
// Обработка клика по кнопке входа через Google
document.getElementById("google-login").addEventListener("click", async () => {
try {
// Attempt to sign in with Google popup
// Попытка входа через всплывающее окно Google
const result = await signInWithPopup(auth, provider);
const user = result.user;
// Create user data object for local storage
// Создание объекта данных пользователя для локального хранилища
const userData = {
name: user.displayName,
email: user.email,
picture: user.photoURL
};
// Save user data to local storage
// Сохранение данных пользователя в локальное хранилище
localStorage.setItem("user", JSON.stringify(userData));
// Save user data to Firestore database
// Сохранение данных пользователя в базу данных Firestore
await setDoc(doc(db, "users", user.uid), {
name: user.displayName,
email: user.email,
joinedAt: new Date()
});
// Redirect to home page after successful login
// Перенаправление на главную страницу после успешного входа
window.location.href = "index.html";
} catch (err) {
// Handle login errors
// Обработка ошибок входа
console.error("Error in the login:", err.message);
alert("Error in login with Google.");
}
});
// Function to handle guest access
// Функция для обработки гостевого доступа
function continueAsGuest() {
// Save guest status to local storage
// Сохранение статуса гостя в локальное хранилище
localStorage.setItem("user", JSON.stringify({ guest: true }));
// Redirect to home page
// Перенаправление на главную страницу
window.location.href = "index.html";
}
// Add event listener for guest login button
document.getElementById("guest-login").addEventListener("click", continueAsGuest);