This project is a Node.js backend that integrates with Canva using OAuth 2.0.
Users can:
- Connect their Canva account
- Authenticate securely
- Return to the app after authorization
- View design details (Design ID & Download URL)
🔗 Backend URL:
https://canva-shopify-backend.onrender.com
🔗 Start OAuth Flow:
https://canva-shopify-backend.onrender.com/connect
🔗 Frontend Test Page:
https://canva-shopify-backend.onrender.com/frontend/test.html
- Node.js
- Express.js
- Axios
- dotenv
project-root/
│
├── frontend/ # Static frontend (test.html)
│
├── src/
│ ├── config/ # Config files
│ ├── controllers/ # Canva OAuth logic
│ ├── routes/ # API routes
│ ├── services/ # API/service logic
│ └── app.js # Express app setup
│
├── .gitignore # Ignore secrets & dependencies
├── package.json # Dependencies
├── package-lock.json
├── server.js # Entry point
└── README.md # Documentation
CANVA_CLIENT_ID=your_client_id
CANVA_CLIENT_SECRET=your_client_secret
CANVA_AUTH_URL=https://www.canva.com/api/oauth/authorize
CANVA_TOKEN_URL=https://api.canva.com/rest/v1/oauth/token
CANVA_REDIRECT_URI=https://canva-shopify-backend.onrender.com/oauth/callback
FRONTEND_URL=https://canva-shopify-backend.onrender.com/frontend/test.html
- User opens:
/connect
- Redirected to Canva login
- User (Allow access)
- Redirected back to:
/oauth/callback
- Backend processes request
- Redirect to frontend:
/frontend/test.html
| Purpose | URL |
|---|---|
| Health Check | https://canva-shopify-backend.onrender.com |
| Start OAuth | https://canva-shopify-backend.onrender.com/connect |
| Frontend | https://canva-shopify-backend.onrender.com/frontend/test.html |
Backend is deployed on Render:
https://canva-shopify-backend.onrender.com
Provide this URL:
https://canva-shopify-backend.onrender.com/connect
- No localhost URLs used
- No ngrok URLs used
- Environment variables secured
- Fully deployed and publicly accessible
Umer Badal
For demonstration and integration purposes only.