feat: add Google OAuth, user profiles, community hub improvements
- Add Google OAuth sign-in alongside magic link authentication - Username onboarding: require username selection after first sign-in - Public profile pages at /u/[username] with social links (GitHub, X) - Settings page for managing username and social links - Viewer header: unified floating card with project name, @username, breadcrumb - Guest CTA on viewer page prompting sign-in - Show owner avatar + username on community project cards - Redesigned project cards (larger preview, avatar + stats row below) - Consistent navbar across hub and profile pages with GitHub link - Footer with links to GitHub repo and npm packages - Borderless design with natural shadows throughout - Apple corner smoothing (squircle) progressive enhancement - cursor:pointer globally on buttons and links - DB migrations: username, github_url, x_url columns on auth_users - Root-level db:generate/migrate/push/studio scripts Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
0fd8656090
commit
62dde6ef5a
@@ -16,6 +16,10 @@ export interface AuthConfig {
|
||||
appName: string
|
||||
baseURL: string
|
||||
secret: string
|
||||
/** Google OAuth client ID */
|
||||
googleClientId?: string
|
||||
/** Google OAuth client secret */
|
||||
googleClientSecret?: string
|
||||
/** Callback to send magic link emails */
|
||||
sendMagicLink?: (params: SendMagicLinkParams) => Promise<void>
|
||||
/** Additional plugins to add (e.g., nextCookies for web) */
|
||||
@@ -57,6 +61,22 @@ export function createAuth(config: AuthConfig): ReturnType<typeof betterAuth> {
|
||||
},
|
||||
},
|
||||
},
|
||||
// Google OAuth provider (only enabled when credentials are provided)
|
||||
...(config.googleClientId &&
|
||||
config.googleClientSecret && {
|
||||
socialProviders: {
|
||||
google: {
|
||||
clientId: config.googleClientId,
|
||||
clientSecret: config.googleClientSecret,
|
||||
},
|
||||
},
|
||||
account: {
|
||||
accountLinking: {
|
||||
enabled: true,
|
||||
trustedProviders: ['google'],
|
||||
},
|
||||
},
|
||||
}),
|
||||
plugins: [
|
||||
...(config.additionalPlugins ?? []),
|
||||
// Magic link authentication
|
||||
|
||||
Reference in New Issue
Block a user