188 lines
4.6 KiB
Markdown
188 lines
4.6 KiB
Markdown
|
|
# 🚀 Quick Start Checklist
|
||
|
|
|
||
|
|
Follow these steps to activate your authentication system:
|
||
|
|
|
||
|
|
## ☐ Step 1: Gmail App Password (5 minutes)
|
||
|
|
|
||
|
|
1. Go to <https://myaccount.google.com/security>
|
||
|
|
2. Enable **2-Step Verification** (if not enabled)
|
||
|
|
3. Click **App passwords**
|
||
|
|
4. Select **Mail** → **Other (Custom name)**
|
||
|
|
5. Name it: `PromptTech Solutions`
|
||
|
|
6. Copy the 16-character password
|
||
|
|
7. Save it for Step 4
|
||
|
|
|
||
|
|
## ☐ Step 2: Google OAuth (10 minutes)
|
||
|
|
|
||
|
|
1. Go to <https://console.cloud.google.com/>
|
||
|
|
2. Create project: `PromptTech Solutions`
|
||
|
|
3. Enable **Google+ API**
|
||
|
|
4. Create **OAuth consent screen**:
|
||
|
|
- User Type: External
|
||
|
|
- App name: PromptTech Solutions
|
||
|
|
- Email: <prompttechbz@gmail.com>
|
||
|
|
- Scopes: email, profile
|
||
|
|
5. Create **OAuth client ID**:
|
||
|
|
- Type: Web application
|
||
|
|
- Authorized origins: `http://localhost:5300`
|
||
|
|
- Redirect URIs: `http://localhost:8181/api/auth/google/callback`
|
||
|
|
6. Copy Client ID and Client Secret
|
||
|
|
7. Save for Step 4
|
||
|
|
|
||
|
|
## ☐ Step 3: Facebook OAuth (10 minutes)
|
||
|
|
|
||
|
|
1. Go to <https://developers.facebook.com/>
|
||
|
|
2. Create App → **Consumer**
|
||
|
|
3. App name: `PromptTech Solutions`
|
||
|
|
4. Add **Facebook Login** product
|
||
|
|
5. Configure OAuth redirect:
|
||
|
|
- Valid URIs: `http://localhost:8181/api/auth/facebook/callback`
|
||
|
|
6. Copy App ID and App Secret (Settings → Basic)
|
||
|
|
7. Toggle app to **Live** mode
|
||
|
|
8. Save for Step 4
|
||
|
|
|
||
|
|
## ☐ Step 4: Yahoo OAuth (10 minutes)
|
||
|
|
|
||
|
|
1. Go to <https://developer.yahoo.com/>
|
||
|
|
2. Create App: `PromptTech Solutions`
|
||
|
|
3. Type: Web Application
|
||
|
|
4. Redirect URI: `http://localhost:8181/api/auth/yahoo/callback`
|
||
|
|
5. Permissions: OpenID Connect
|
||
|
|
6. Copy Client ID and Client Secret
|
||
|
|
7. Save for Step 4
|
||
|
|
|
||
|
|
## ☐ Step 5: Configure Environment
|
||
|
|
|
||
|
|
1. Open `backend/.env` (create from `.env.example` if needed):
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /media/pts/Website/PromptTech_Solution_Site/backend
|
||
|
|
cp .env.example .env
|
||
|
|
nano .env
|
||
|
|
```
|
||
|
|
|
||
|
|
1. Fill in these values:
|
||
|
|
|
||
|
|
```env
|
||
|
|
# Gmail SMTP (from Step 1)
|
||
|
|
SMTP_USER=prompttechbz@gmail.com
|
||
|
|
SMTP_PASSWORD=abcd efgh ijkl mnop # Your 16-char password
|
||
|
|
|
||
|
|
# Google OAuth (from Step 2)
|
||
|
|
GOOGLE_CLIENT_ID=xxxxxxxx.apps.googleusercontent.com
|
||
|
|
GOOGLE_CLIENT_SECRET=GOCSPX-xxxxxxxxxx
|
||
|
|
|
||
|
|
# Facebook OAuth (from Step 3)
|
||
|
|
FACEBOOK_APP_ID=1234567890123456
|
||
|
|
FACEBOOK_APP_SECRET=abc123def456...
|
||
|
|
|
||
|
|
# Yahoo OAuth (from Step 4)
|
||
|
|
YAHOO_CLIENT_ID=dj0yJmk9xxxxxxxx
|
||
|
|
YAHOO_CLIENT_SECRET=abcdef123456...
|
||
|
|
```
|
||
|
|
|
||
|
|
1. Generate a strong JWT secret:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
python3 -c "import secrets; print(secrets.token_urlsafe(64))"
|
||
|
|
```
|
||
|
|
|
||
|
|
1. Add to .env:
|
||
|
|
|
||
|
|
```env
|
||
|
|
JWT_SECRET=<paste-generated-secret-here>
|
||
|
|
```
|
||
|
|
|
||
|
|
## ☐ Step 6: Restart Backend
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /media/pts/Website/PromptTech_Solution_Site/scripts
|
||
|
|
./start_backend.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
Wait for: `Database initialized successfully`
|
||
|
|
|
||
|
|
## ☐ Step 7: Test Each Login Method
|
||
|
|
|
||
|
|
1. **Email Registration:**
|
||
|
|
- Go to <http://localhost:5300/login>
|
||
|
|
- Click "Sign up"
|
||
|
|
- Fill: First Name, Last Name, Email, Password
|
||
|
|
- Click "Create Account"
|
||
|
|
- Check email for verification link
|
||
|
|
- Click verification link
|
||
|
|
- Should see "Email verified successfully!"
|
||
|
|
|
||
|
|
2. **Google Login:**
|
||
|
|
- Go to <http://localhost:5300/login>
|
||
|
|
- Click "Sign in with Google"
|
||
|
|
- Select Google account
|
||
|
|
- Should redirect back and login
|
||
|
|
|
||
|
|
3. **Facebook Login:**
|
||
|
|
- Click "Sign in with Facebook"
|
||
|
|
- Login to Facebook
|
||
|
|
- Approve permissions
|
||
|
|
- Should redirect back and login
|
||
|
|
|
||
|
|
4. **Yahoo Login:**
|
||
|
|
- Click "Sign in with Yahoo"
|
||
|
|
- Login to Yahoo account
|
||
|
|
- Approve permissions
|
||
|
|
- Should redirect back and login
|
||
|
|
|
||
|
|
## ✅ Verification Checklist
|
||
|
|
|
||
|
|
- [ ] Gmail App Password created and working
|
||
|
|
- [ ] Google OAuth app created and tested
|
||
|
|
- [ ] Facebook app created and set to Live
|
||
|
|
- [ ] Yahoo app created
|
||
|
|
- [ ] All credentials in `.env` file
|
||
|
|
- [ ] Backend restarted successfully
|
||
|
|
- [ ] Email verification working (check inbox)
|
||
|
|
- [ ] Google login working
|
||
|
|
- [ ] Facebook login working
|
||
|
|
- [ ] Yahoo login working
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🆘 Troubleshooting
|
||
|
|
|
||
|
|
**Email not sending?**
|
||
|
|
|
||
|
|
- Verify App Password is correct (no spaces)
|
||
|
|
- Check SMTP_USER matches the Gmail account
|
||
|
|
- Try sending test email manually
|
||
|
|
|
||
|
|
**OAuth redirect error?**
|
||
|
|
|
||
|
|
- Verify redirect URIs match EXACTLY
|
||
|
|
- Check for trailing slashes
|
||
|
|
- Ensure app is "Live" (Facebook)
|
||
|
|
|
||
|
|
**Token expired?**
|
||
|
|
|
||
|
|
- Verification links expire after 24 hours
|
||
|
|
- User can register again with same email
|
||
|
|
|
||
|
|
**Database error?**
|
||
|
|
|
||
|
|
- Check if migration ran: `ls backend/logs/`
|
||
|
|
- Look for errors in backend console
|
||
|
|
- Verify database is running
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📚 Full Documentation
|
||
|
|
|
||
|
|
For detailed instructions, see:
|
||
|
|
|
||
|
|
- [docs/AUTH_SETUP_GUIDE.md](AUTH_SETUP_GUIDE.md) - Complete setup guide
|
||
|
|
- [docs/AUTH_IMPLEMENTATION_SUMMARY.md](AUTH_IMPLEMENTATION_SUMMARY.md) - Technical details
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Estimated Time:** 30-40 minutes total
|
||
|
|
**Difficulty:** Medium (following step-by-step)
|
||
|
|
**Status:** Ready to configure ✅
|