Mark-Lasfar commited on
Commit
be59b4c
·
1 Parent(s): f50c125

Update authorize for google & github

Browse files
Files changed (1) hide show
  1. templates/login.html +47 -16
templates/login.html CHANGED
@@ -104,12 +104,12 @@
104
  </button>
105
  </form>
106
  <div class="flex justify-center gap-4 mt-4 flex-wrap">
107
- <a id="googleLoginBtn" href="/auth/google" class="inline-flex items-center bg-gradient-to-r from-white to-gray-200 text-gray-800 px-6 py-3 rounded-full font-semibold hover:scale-105 transition-transform">
108
  Login with Google <i class="bx bxl-google ml-2"></i>
109
- </a>
110
- <a id="githubLoginBtn" href="/auth/github" class="inline-flex items-center bg-gradient-to-r from-gray-800 to-black text-white px-6 py-3 rounded-full font-semibold hover:scale-105 transition-transform">
111
  Login with GitHub <i class="bx bxl-github ml-2"></i>
112
- </a>
113
  </div>
114
  <p class="mt-4">Don't have an account? <a href="/register" class="text-emerald-300 hover:underline">Register</a></p>
115
  <p id="errorMsg" class="text-red-500 mt-4 hidden"></p>
@@ -194,8 +194,6 @@
194
  const loginBtn = document.getElementById('loginBtn');
195
  const spinner = document.getElementById('spinner');
196
  const errorMsg = document.getElementById('errorMsg');
197
-
198
- // Handle email/password login
199
  loginForm.addEventListener('submit', async (e) => {
200
  e.preventDefault();
201
  spinner.classList.remove('hidden');
@@ -218,27 +216,60 @@
218
  spinner.classList.add('hidden');
219
  errorMsg.textContent = 'An error occurred. Please try again.';
220
  errorMsg.classList.remove('hidden');
221
- console.error('Error during login:', error);
222
  }
223
  });
224
-
225
- // Handle card details toggle
226
  function showCardDetails(cardId) {
227
  document.getElementById(`${cardId}-details`).classList.remove('hidden');
228
  }
229
-
230
  function closeCardDetails(cardId) {
231
  document.getElementById(`${cardId}-details`).classList.add('hidden');
232
  }
233
-
234
- // Service Worker for PWA
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  if ('serviceWorker' in navigator) {
236
  navigator.serviceWorker.register('/static/js/sw.js')
237
- .then(reg => console.log('✅ Service Worker Registered', reg))
238
- .catch(err => console.error(' Service Worker registration failed', err));
 
 
 
239
  }
240
-
241
- // Handle PWA install prompt
242
  let deferredPrompt;
243
  window.addEventListener('beforeinstallprompt', (e) => {
244
  e.preventDefault();
 
104
  </button>
105
  </form>
106
  <div class="flex justify-center gap-4 mt-4 flex-wrap">
107
+ <button id="googleLoginBtn" class="inline-flex items-center bg-gradient-to-r from-white to-gray-200 text-gray-800 px-6 py-3 rounded-full font-semibold hover:scale-105 transition-transform">
108
  Login with Google <i class="bx bxl-google ml-2"></i>
109
+ </button>
110
+ <button id="githubLoginBtn" class="inline-flex items-center bg-gradient-to-r from-gray-800 to-black text-white px-6 py-3 rounded-full font-semibold hover:scale-105 transition-transform">
111
  Login with GitHub <i class="bx bxl-github ml-2"></i>
112
+ </button>
113
  </div>
114
  <p class="mt-4">Don't have an account? <a href="/register" class="text-emerald-300 hover:underline">Register</a></p>
115
  <p id="errorMsg" class="text-red-500 mt-4 hidden"></p>
 
194
  const loginBtn = document.getElementById('loginBtn');
195
  const spinner = document.getElementById('spinner');
196
  const errorMsg = document.getElementById('errorMsg');
 
 
197
  loginForm.addEventListener('submit', async (e) => {
198
  e.preventDefault();
199
  spinner.classList.remove('hidden');
 
216
  spinner.classList.add('hidden');
217
  errorMsg.textContent = 'An error occurred. Please try again.';
218
  errorMsg.classList.remove('hidden');
 
219
  }
220
  });
 
 
221
  function showCardDetails(cardId) {
222
  document.getElementById(`${cardId}-details`).classList.remove('hidden');
223
  }
 
224
  function closeCardDetails(cardId) {
225
  document.getElementById(`${cardId}-details`).classList.add('hidden');
226
  }
227
+ // Google Login
228
+ document.getElementById('googleLoginBtn').addEventListener('click', async () => {
229
+ try {
230
+ const response = await fetch('/auth/google/authorize');
231
+ const data = await response.json();
232
+ if (data.authorization_url) {
233
+ window.location.href = data.authorization_url;
234
+ } else {
235
+ console.error('No authorization URL received');
236
+ errorMsg.textContent = 'Error starting Google login. Try again.';
237
+ errorMsg.classList.remove('hidden');
238
+ }
239
+ } catch (error) {
240
+ console.error('Error initiating Google login:', error);
241
+ errorMsg.textContent = 'Error starting Google login. Try again.';
242
+ errorMsg.classList.remove('hidden');
243
+ }
244
+ });
245
+ // GitHub Login
246
+ document.getElementById('githubLoginBtn').addEventListener('click', async () => {
247
+ try {
248
+ const response = await fetch('/auth/github/authorize');
249
+ const data = await response.json();
250
+ if (data.authorization_url) {
251
+ window.location.href = data.authorization_url;
252
+ } else {
253
+ console.error('No authorization URL received');
254
+ errorMsg.textContent = 'Error starting GitHub login. Try again.';
255
+ errorMsg.classList.remove('hidden');
256
+ }
257
+ } catch (error) {
258
+ console.error('Error initiating GitHub login:', error);
259
+ errorMsg.textContent = 'Error starting GitHub login. Try again.';
260
+ errorMsg.classList.remove('hidden');
261
+ }
262
+ });
263
+ // تسجيل Service Worker لتفعيل الـ PWA
264
  if ('serviceWorker' in navigator) {
265
  navigator.serviceWorker.register('/static/js/sw.js')
266
+ .then(function(reg) {
267
+ console.log(' Service Worker Registered', reg);
268
+ }).catch(function(err) {
269
+ console.error('❌ Service Worker registration failed', err);
270
+ });
271
  }
272
+ // التعامل مع حدث beforeinstallprompt لتثبيت التطبيق
 
273
  let deferredPrompt;
274
  window.addEventListener('beforeinstallprompt', (e) => {
275
  e.preventDefault();