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);
|
||||
|
||||
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 {
|
||||
setProfile(null);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue