Skip to content

Commit a297c62

Browse files
committed
feat: receive a new user state every time an auth event happens
1 parent 124b221 commit a297c62

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

packages/auth/UserContextProvider.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default defineComponent({
2828
)
2929

3030
return () => {
31-
console.log('authListener')
31+
// console.log('authListener')
3232
authListener?.subscription.unsubscribe()
3333
}
3434
})
@@ -45,15 +45,31 @@ export default defineComponent({
4545
export const useSupabaseUser = (supabaseClient: SupabaseClient) => {
4646
const supabaseUser = ref<User | null>(null)
4747

48-
// Asyncronous refresh session and ensure user is still logged in
49-
supabaseClient?.auth.getSession().then(({ data: { session } }) => {
48+
const setSupbaseUser = (session: Session) => {
5049
if (session) {
5150
if (JSON.stringify(supabaseUser.value) !== JSON.stringify(session.user)) {
5251
supabaseUser.value = session.user
5352
}
5453
} else {
5554
supabaseUser.value = null
5655
}
56+
}
57+
58+
// Asyncronous refresh session and ensure user is still logged in
59+
supabaseClient?.auth.getSession().then(({ data: { session } }) => {
60+
session && setSupbaseUser(session)
61+
})
62+
63+
onMounted(async () => {
64+
const { data: authListener } = supabaseClient.auth.onAuthStateChange(
65+
async (event, newSession) => {
66+
newSession && setSupbaseUser(newSession)
67+
}
68+
)
69+
70+
return () => {
71+
authListener?.subscription.unsubscribe()
72+
}
5773
})
5874

5975
return {

0 commit comments

Comments
 (0)