From 24964497e0e33c418ef9f9210721c46db556d036 Mon Sep 17 00:00:00 2001 From: Sandeep Ramgolam Date: Fri, 16 Aug 2024 20:44:27 +0400 Subject: [PATCH 01/19] enable github button --- .../frontendmu-nuxt/auth-utils/useAuth.ts | 16 ++++- .../components/auth/LoginForm.vue | 66 ++++++------------- 2 files changed, 33 insertions(+), 49 deletions(-) diff --git a/packages/frontendmu-nuxt/auth-utils/useAuth.ts b/packages/frontendmu-nuxt/auth-utils/useAuth.ts index 2f23313f..78d8744b 100644 --- a/packages/frontendmu-nuxt/auth-utils/useAuth.ts +++ b/packages/frontendmu-nuxt/auth-utils/useAuth.ts @@ -220,9 +220,19 @@ export default function useAuth(client: DirectusClient & AuthenticationClie return false }) - function oAuthLogin() { - const currentPage = new URL(window.location.origin) - return `${DIRECTUS_URL()}/auth/login/google?redirect=${currentPage}redirect` + function oAuthLogin(provider: string) { + if (provider === 'google') { + const currentPage = new URL(window.location.origin) + return `${DIRECTUS_URL()}/auth/login/google?redirect=${currentPage}redirect` + } + else if (provider === 'github') { + const currentPage = new URL(window.location.origin) + return `${DIRECTUS_URL()}/auth/login/github?redirect=${currentPage}redirect` + } + + console.log('Provider not found') + + return false } async function updateUserProfile({ profile_updates }: { profile_updates: DirectusAstroUser }) { diff --git a/packages/frontendmu-nuxt/components/auth/LoginForm.vue b/packages/frontendmu-nuxt/components/auth/LoginForm.vue index 8ea3c0d9..edc9a7be 100644 --- a/packages/frontendmu-nuxt/components/auth/LoginForm.vue +++ b/packages/frontendmu-nuxt/components/auth/LoginForm.vue @@ -28,7 +28,8 @@ const developmentEnvironment = process.env.NODE_ENV === 'development'
-
+
@@ -52,41 +53,24 @@ const developmentEnvironment = process.env.NODE_ENV === 'development'
-
-
@@ -103,10 +87,8 @@ const developmentEnvironment = process.env.NODE_ENV === 'development'
-->
-
@@ -124,25 +106,19 @@ const developmentEnvironment = process.env.NODE_ENV === 'development'
- + Google - + GitHub @@ -150,10 +126,8 @@ const developmentEnvironment = process.env.NODE_ENV === 'development'
- From a22fdbff54785c88ac4b4a401cdbcdf26a2fdcd0 Mon Sep 17 00:00:00 2001 From: Sandeep Ramgolam Date: Fri, 16 Aug 2024 20:52:00 +0400 Subject: [PATCH 02/19] add github auth function --- packages/frontendmu-nuxt/components/auth/LoginForm.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/frontendmu-nuxt/components/auth/LoginForm.vue b/packages/frontendmu-nuxt/components/auth/LoginForm.vue index edc9a7be..25f2bd14 100644 --- a/packages/frontendmu-nuxt/components/auth/LoginForm.vue +++ b/packages/frontendmu-nuxt/components/auth/LoginForm.vue @@ -112,7 +112,7 @@ const developmentEnvironment = process.env.NODE_ENV === 'development' Google - GitHub + + + + Discord +
From 066a1d04b28f83f18d6db8ceaedbd08366088ab2 Mon Sep 17 00:00:00 2001 From: Sandeep Ramgolam Date: Mon, 2 Sep 2024 21:04:17 +0400 Subject: [PATCH 05/19] deploy mode cookie --- packages/frontendmu-nuxt/auth-utils/useAuth.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/frontendmu-nuxt/auth-utils/useAuth.ts b/packages/frontendmu-nuxt/auth-utils/useAuth.ts index f13eba10..cd7cbcf7 100644 --- a/packages/frontendmu-nuxt/auth-utils/useAuth.ts +++ b/packages/frontendmu-nuxt/auth-utils/useAuth.ts @@ -114,6 +114,7 @@ export default function useAuth(client: DirectusClient & AuthenticationClie credentials: 'include', // this is required in order to send the refresh token cookie body: JSON.stringify({ refresh_token: getCookieValue('directus_session_token'), + mode: 'cookie', }), }, ) From 8686920682400f932044dfb55ebf1b497d7fac73 Mon Sep 17 00:00:00 2001 From: Sandeep Ramgolam Date: Mon, 2 Sep 2024 22:00:09 +0400 Subject: [PATCH 06/19] add provider only fetch profile picture if provider is google --- packages/frontendmu-nuxt/auth-utils/useAuth.ts | 4 ++-- packages/frontendmu-nuxt/utils/helpers.ts | 1 + packages/frontendmu-nuxt/utils/types.ts | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/frontendmu-nuxt/auth-utils/useAuth.ts b/packages/frontendmu-nuxt/auth-utils/useAuth.ts index cd7cbcf7..f27cca8c 100644 --- a/packages/frontendmu-nuxt/auth-utils/useAuth.ts +++ b/packages/frontendmu-nuxt/auth-utils/useAuth.ts @@ -114,7 +114,6 @@ export default function useAuth(client: DirectusClient & AuthenticationClie credentials: 'include', // this is required in order to send the refresh token cookie body: JSON.stringify({ refresh_token: getCookieValue('directus_session_token'), - mode: 'cookie', }), }, ) @@ -124,7 +123,7 @@ export default function useAuth(client: DirectusClient & AuthenticationClie setCookie(response.data) await getCurrentUser() setAuth(true) - if (!rawUser.value?.profile_picture) { + if (!rawUser.value?.profile_picture && rawUser.value?.provider === 'google') { const picture = await cloudFunctionUpdateProfilePicture(rawUser.value?.id || '') console.log(picture) } @@ -176,6 +175,7 @@ export default function useAuth(client: DirectusClient & AuthenticationClie 'Events.Events_id.title', 'profile_picture', 'role.name', + 'provider', ] try { diff --git a/packages/frontendmu-nuxt/utils/helpers.ts b/packages/frontendmu-nuxt/utils/helpers.ts index 9f6651fb..b857b9fa 100644 --- a/packages/frontendmu-nuxt/utils/helpers.ts +++ b/packages/frontendmu-nuxt/utils/helpers.ts @@ -53,6 +53,7 @@ export function mapToValidUser(user: any): User { profile_picture: user.profile_picture || '', google: user.google, role: user.role.name, + provider: user.provider, } } diff --git a/packages/frontendmu-nuxt/utils/types.ts b/packages/frontendmu-nuxt/utils/types.ts index e2ed71af..0fb012d0 100644 --- a/packages/frontendmu-nuxt/utils/types.ts +++ b/packages/frontendmu-nuxt/utils/types.ts @@ -36,6 +36,7 @@ export interface User { github_username?: string profile_picture?: string | null role: 'sso_google' | 'Admin' + provider: string } // export type Transport = "car" | "bus" | "need a ride"; @@ -177,6 +178,7 @@ export interface DirectusAstroUser { github_username?: string profile_picture?: string Events?: { Events_id: DirectusEvent | string }[] + provider?: string } export type ToastTypes = 'SUCCESS' | 'WARNING' | 'INFO' | 'ERROR' From 16f0fe12f208b59618e0a2a4afb0b0eae46faab3 Mon Sep 17 00:00:00 2001 From: Sandeep Ramgolam Date: Mon, 2 Sep 2024 22:11:15 +0400 Subject: [PATCH 07/19] Revert "add provider" This reverts commit 8686920682400f932044dfb55ebf1b497d7fac73. --- packages/frontendmu-nuxt/auth-utils/useAuth.ts | 4 ++-- packages/frontendmu-nuxt/utils/helpers.ts | 1 - packages/frontendmu-nuxt/utils/types.ts | 2 -- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/frontendmu-nuxt/auth-utils/useAuth.ts b/packages/frontendmu-nuxt/auth-utils/useAuth.ts index f27cca8c..cd7cbcf7 100644 --- a/packages/frontendmu-nuxt/auth-utils/useAuth.ts +++ b/packages/frontendmu-nuxt/auth-utils/useAuth.ts @@ -114,6 +114,7 @@ export default function useAuth(client: DirectusClient & AuthenticationClie credentials: 'include', // this is required in order to send the refresh token cookie body: JSON.stringify({ refresh_token: getCookieValue('directus_session_token'), + mode: 'cookie', }), }, ) @@ -123,7 +124,7 @@ export default function useAuth(client: DirectusClient & AuthenticationClie setCookie(response.data) await getCurrentUser() setAuth(true) - if (!rawUser.value?.profile_picture && rawUser.value?.provider === 'google') { + if (!rawUser.value?.profile_picture) { const picture = await cloudFunctionUpdateProfilePicture(rawUser.value?.id || '') console.log(picture) } @@ -175,7 +176,6 @@ export default function useAuth(client: DirectusClient & AuthenticationClie 'Events.Events_id.title', 'profile_picture', 'role.name', - 'provider', ] try { diff --git a/packages/frontendmu-nuxt/utils/helpers.ts b/packages/frontendmu-nuxt/utils/helpers.ts index b857b9fa..9f6651fb 100644 --- a/packages/frontendmu-nuxt/utils/helpers.ts +++ b/packages/frontendmu-nuxt/utils/helpers.ts @@ -53,7 +53,6 @@ export function mapToValidUser(user: any): User { profile_picture: user.profile_picture || '', google: user.google, role: user.role.name, - provider: user.provider, } } diff --git a/packages/frontendmu-nuxt/utils/types.ts b/packages/frontendmu-nuxt/utils/types.ts index 0fb012d0..e2ed71af 100644 --- a/packages/frontendmu-nuxt/utils/types.ts +++ b/packages/frontendmu-nuxt/utils/types.ts @@ -36,7 +36,6 @@ export interface User { github_username?: string profile_picture?: string | null role: 'sso_google' | 'Admin' - provider: string } // export type Transport = "car" | "bus" | "need a ride"; @@ -178,7 +177,6 @@ export interface DirectusAstroUser { github_username?: string profile_picture?: string Events?: { Events_id: DirectusEvent | string }[] - provider?: string } export type ToastTypes = 'SUCCESS' | 'WARNING' | 'INFO' | 'ERROR' From 11a4995559314e3cf707dc9b2cebd668117dddfd Mon Sep 17 00:00:00 2001 From: Sandeep Ramgolam Date: Mon, 2 Sep 2024 22:22:44 +0400 Subject: [PATCH 08/19] request provider for self --- packages/frontendmu-nuxt/auth-utils/useAuth.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/frontendmu-nuxt/auth-utils/useAuth.ts b/packages/frontendmu-nuxt/auth-utils/useAuth.ts index cd7cbcf7..aef9540f 100644 --- a/packages/frontendmu-nuxt/auth-utils/useAuth.ts +++ b/packages/frontendmu-nuxt/auth-utils/useAuth.ts @@ -176,6 +176,7 @@ export default function useAuth(client: DirectusClient & AuthenticationClie 'Events.Events_id.title', 'profile_picture', 'role.name', + 'provider', ] try { From 8e5b77217c3c97a404eb7da1644266e4f9ff8261 Mon Sep 17 00:00:00 2001 From: Sandeep Ramgolam Date: Mon, 2 Sep 2024 22:34:09 +0400 Subject: [PATCH 09/19] show profile pic for github users --- .../frontendmu-nuxt/auth-utils/useAuth.ts | 1 + .../components/auth/LoggedUser.vue | 52 ++++++++++++++----- packages/frontendmu-nuxt/utils/types.ts | 2 + 3 files changed, 43 insertions(+), 12 deletions(-) diff --git a/packages/frontendmu-nuxt/auth-utils/useAuth.ts b/packages/frontendmu-nuxt/auth-utils/useAuth.ts index aef9540f..366944fe 100644 --- a/packages/frontendmu-nuxt/auth-utils/useAuth.ts +++ b/packages/frontendmu-nuxt/auth-utils/useAuth.ts @@ -172,6 +172,7 @@ export default function useAuth(client: DirectusClient & AuthenticationClie 'meal', 'occupation', 'github_username', + 'external_identifier', 'Events.Events_id.id', 'Events.Events_id.title', 'profile_picture', diff --git a/packages/frontendmu-nuxt/components/auth/LoggedUser.vue b/packages/frontendmu-nuxt/components/auth/LoggedUser.vue index e92ad89f..6f0b7605 100644 --- a/packages/frontendmu-nuxt/components/auth/LoggedUser.vue +++ b/packages/frontendmu-nuxt/components/auth/LoggedUser.vue @@ -16,34 +16,57 @@ onMounted(() => {