from authlib.integrations.starlette_client import OAuth from starlette.config import Config from app.core.config import settings config = Config() oauth = OAuth(config) # Google OAuth oauth.register( name='google', client_id=settings.google_client_id, client_secret=settings.google_client_secret, server_metadata_url='https://accounts.google.com/.well-known/openid-configuration', client_kwargs={ 'scope': 'openid email profile' } ) # GitHub OAuth oauth.register( name='github', client_id=settings.github_client_id, client_secret=settings.github_client_secret, access_token_url='https://github.com/login/oauth/access_token', authorize_url='https://github.com/login/oauth/authorize', api_base_url='https://api.github.com/', client_kwargs={'scope': 'user:email'}, ) # Apple OAuth oauth.register( name='apple', client_id=settings.apple_client_id, client_secret=settings.apple_private_key, authorize_url='https://appleid.apple.com/auth/authorize', access_token_url='https://appleid.apple.com/auth/token', client_kwargs={'scope': 'name email'}, )