Skip to main content
Glama

MCP Chat Support System

GOOGLE_AUTH_SETUP.md6.82 kB
# 🔐 Google Authentication Setup Guide ## 🎯 **Google OAuth Configuration** ### **Step 1: Create Google Cloud Project** 1. **Visit Google Cloud Console**: https://console.cloud.google.com/ 2. **Create New Project**: - Click "Select a project" → "New Project" - Project name: `MCP Chat Support` - Click "Create" 3. **Enable Google Identity API**: - Go to "APIs & Services" → "Library" - Search for "Google Identity" - Click "Google Identity" → "Enable" ### **Step 2: Configure OAuth Consent Screen** 1. **Go to OAuth consent screen**: - Navigate: APIs & Services → OAuth consent screen - Choose "External" (for public use) - Click "Create" 2. **Fill App Information**: ``` App name: MCP Chat Support User support email: your-email@example.com Developer contact: your-email@example.com ``` 3. **Add Scopes** (Optional for basic auth): - Add: `openid`, `email`, `profile` 4. **Test Users** (if in testing mode): - Add your email and any test user emails ### **Step 3: Create OAuth 2.0 Credentials** 1. **Go to Credentials**: - Navigate: APIs & Services → Credentials - Click "Create Credentials" → "OAuth 2.0 Client IDs" 2. **Configure Client**: ``` Application type: Web application Name: MCP Chat Frontend Authorized JavaScript origins: - http://localhost:5173 (for development) - https://your-domain.com (for production) Authorized redirect URIs: - http://localhost:5173/auth/google/callback - https://your-domain.com/auth/google/callback ``` 3. **Save Client ID**: Copy the generated Client ID --- ## ⚙️ **Frontend Integration** ### **Step 1: Environment Variables** Create `.env.local` in your project root: ```env # Google OAuth VITE_GOOGLE_CLIENT_ID=your_google_client_id_here.apps.googleusercontent.com # API Configuration VITE_API_URL=https://gemini-mcp-server-production.up.railway.app VITE_RAZORPAY_KEY_ID=rzp_test_your_key_here ``` ### **Step 2: Test Google Authentication** 1. **Start your dev server**: ```bash npm run dev ``` 2. **Test login flow**: - Go to: http://localhost:5173/login - Click "Sign in with Google" - Complete Google OAuth flow - Should redirect to dashboard ### **Step 3: Verify Integration** Check browser console for: ```javascript // Successful login should show: Google user: { id: "google_user_id", email: "user@example.com", name: "User Name", picture: "profile_image_url" } ``` --- ## 🖥️ **Backend Integration (Optional)** ### **Add to your Railway MCP Server** Add these endpoints to your `app.py`: ```python from google.oauth2 import id_token from google.auth.transport import requests import os # Google OAuth Configuration GOOGLE_CLIENT_ID = os.getenv('GOOGLE_CLIENT_ID') @app.post("/api/auth/google") async def google_auth(request: dict): try: # For production, verify the token: # idinfo = id_token.verify_oauth2_token( # request['id_token'], # requests.Request(), # GOOGLE_CLIENT_ID # ) # For now, just create/login user with Google data google_id = request['googleId'] email = request['email'] name = request['name'] picture = request['picture'] # Check if user exists, create if not user = { 'id': f"google-{google_id}", 'name': name, 'email': email, 'role': 'tenant', 'picture': picture, 'provider': 'google' } # Generate JWT token token = jwt.encode( { 'userId': user['id'], 'email': email, 'role': 'tenant', 'exp': datetime.utcnow() + timedelta(days=30) }, 'your-secret-key' ) return { 'token': token, 'user': user } except Exception as e: raise HTTPException(status_code=400, detail=str(e)) ``` ### **Environment Variables for Railway** Add to your Railway deployment: ``` GOOGLE_CLIENT_ID=your_google_client_id_here ``` --- ## 🧪 **Testing Guide** ### **Test with Google Test Account** 1. **Create test account** (if needed): - Go to: https://accounts.google.com/signup - Create: test-user@gmail.com 2. **Add to OAuth consent screen**: - Add test email in Google Cloud Console - Under "Test users" section 3. **Test authentication flow**: ```javascript // In browser console, test manual auth: import { googleAuth } from './src/lib/googleAuth'; googleAuth.signIn().then(user => { console.log('Google user:', user); }); ``` ### **Common Issues & Solutions** #### **Issue: "This app isn't verified"** - **Solution**: Add your domain to authorized origins - **Development**: Use localhost:5173 in authorized origins #### **Issue: "Popup blocked"** - **Solution**: Allow popups for your domain - **Alternative**: Use redirect flow instead of popup #### **Issue: "Client ID not found"** - **Solution**: Check environment variable `VITE_GOOGLE_CLIENT_ID` - **Verify**: Copy correct Client ID from Google Cloud Console --- ## 🚀 **Production Deployment** ### **Step 1: Update OAuth Settings** In Google Cloud Console, add production domains: ``` Authorized JavaScript origins: - https://your-saas-domain.com - https://your-saas-domain.vercel.app Authorized redirect URIs: - https://your-saas-domain.com/auth/google/callback ``` ### **Step 2: Environment Variables** For Vercel deployment: ```bash vercel env add VITE_GOOGLE_CLIENT_ID # Enter your production Google Client ID ``` ### **Step 3: Verify Production** 1. **Deploy app**: `vercel --prod` 2. **Test Google auth**: On production URL 3. **Check OAuth flow**: Complete end-to-end test --- ## ✅ **Current Status** ### **What's Working**: - ✅ Google OAuth integration ready - ✅ Frontend authentication flow - ✅ User data extraction from Google - ✅ Token-based authentication - ✅ Secure logout ### **Next Steps**: 1. Get Google Client ID from Cloud Console 2. Add to environment variables 3. Test authentication flow 4. Deploy with Google auth enabled ### **Benefits**: - 🚀 **Faster Signup**: One-click registration - 🔒 **Enhanced Security**: Google handles passwords - 👥 **Better UX**: Users prefer social login - 📧 **Verified Emails**: Google emails are pre-verified --- ## 🎯 **Quick Setup (5 minutes)** 1. **Google Cloud Console** → Create project 2. **Enable Identity API** → Configure OAuth screen 3. **Create credentials** → Copy Client ID 4. **Add to .env.local** → `VITE_GOOGLE_CLIENT_ID=your_id` 5. **Test login** → Should work immediately! Your Google authentication is now ready for production! 🎉

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ChiragPatankar/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server