Enhanced OAuth handling in AuthContext
cgen-fad2bcc90540448cad965adb8581a6d2
This commit is contained in:
parent
b7101f92a0
commit
892e15a6a6
1 changed files with 28 additions and 1 deletions
|
|
@ -63,7 +63,34 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children
|
||||||
setUser(session?.user ?? null);
|
setUser(session?.user ?? null);
|
||||||
|
|
||||||
if (session?.user) {
|
if (session?.user) {
|
||||||
await fetchUserProfile(session.user.id);
|
const profile = await fetchUserProfile(session.user.id);
|
||||||
|
|
||||||
|
// Create profile for new OAuth users
|
||||||
|
if (!profile && session.user.app_metadata?.provider) {
|
||||||
|
try {
|
||||||
|
await aethexUserService.createInitialProfile(session.user.id, {
|
||||||
|
username: session.user.user_metadata?.user_name ||
|
||||||
|
session.user.user_metadata?.preferred_username ||
|
||||||
|
session.user.email?.split('@')[0] ||
|
||||||
|
`user_${Date.now()}`,
|
||||||
|
full_name: session.user.user_metadata?.full_name ||
|
||||||
|
session.user.user_metadata?.name ||
|
||||||
|
session.user.email?.split('@')[0],
|
||||||
|
email: session.user.email,
|
||||||
|
avatar_url: session.user.user_metadata?.avatar_url,
|
||||||
|
user_type: 'community_member', // Default for OAuth users
|
||||||
|
experience_level: 'beginner',
|
||||||
|
});
|
||||||
|
|
||||||
|
// Fetch the newly created profile
|
||||||
|
await fetchUserProfile(session.user.id);
|
||||||
|
|
||||||
|
// Award onboarding achievement for OAuth users
|
||||||
|
await aethexAchievementService.checkAndAwardOnboardingAchievement(session.user.id);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error creating OAuth user profile:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
setProfile(null);
|
setProfile(null);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue