import env from '#start/env' import { defineConfig, services } from '@adonisjs/ally' /** * Configuration des providers OAuth (Ally). * * V1 : Google uniquement (cf. CLAUDE.md → Auth). Les autres viendront * plus tard si pertinent (Microsoft pour les TPE qui utilisent O365 ?). * * Le callback URL pointe vers l'API en interne (/api/v1/auth/google/callback). * En prod, le reverse proxy nginx (rubis-web) achemine /api/* vers ce * service, donc la même URL fonctionne pour le browser et pour Google. */ const allyConfig = defineConfig({ google: services.google({ clientId: env.get('GOOGLE_CLIENT_ID', ''), clientSecret: env.get('GOOGLE_CLIENT_SECRET', ''), callbackUrl: env.get( 'GOOGLE_CALLBACK_URL', 'http://localhost:3333/api/v1/auth/google/callback' ), // Scopes minimaux : on a juste besoin de l'email + nom + photo (avatar // optionnel V2). Pas de Drive/Calendar : on ne touche pas aux données // Google de l'utilisateur, on s'en sert juste comme provider d'identité. scopes: ['userinfo.email', 'userinfo.profile'], prompt: 'select_account', }), }) export default allyConfig declare module '@adonisjs/ally/types' { interface SocialProviders extends InferSocialProviders {} } import type { InferSocialProviders } from '@adonisjs/ally/types'