Add build.sh for Cloudflare Pages env-based config injection

- Add build.sh that generates auth-config.js from environment variables
  (API_BASE_URL, GOOGLE_CLIENT_ID, ALLOWED_EMAILS) at build time
- Move email whitelist from hardcoded login.html to window.ALLOWED_EMAILS
  in auth-config.js, so it can be configured via env vars
- Reset auth-config.js to placeholder defaults in repo
- Update README.md and README_CN.md deployment docs for both options

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
0xcathiefish
2026-02-14 15:45:33 +00:00
parent 9812bc7635
commit 619391f87a
5 changed files with 75 additions and 90 deletions
+3 -17
View File
@@ -1,28 +1,14 @@
window.API_CONFIG = { baseUrl: 'https://api-view.cathiefish.org' };
/**
* Google OAuth Configuration
* Configure your Google OAuth Client ID here
* Access control is managed via the test users list in GCP Console
*/
window.API_CONFIG = { baseUrl: 'https://xxx.xxx.com' };
const AUTH_CONFIG = {
// Client ID obtained from GCP Console
// Replace with your actual Client ID
clientId: '136939086552-bt28icv34nucmjna8hfndr6bopr5qcp4.apps.googleusercontent.com',
// Authentication success callback
clientId: 'xxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com',
onSuccess: (user) => {
console.log('Authentication successful:', user.email);
// Additional logic can be added here, e.g. logging
},
// Authentication failure callback
onError: (error) => {
console.error('Authentication error:', error);
// Error handling logic can be added here
}
};
// Export configuration
window.AUTH_CONFIG = AUTH_CONFIG;
window.ALLOWED_EMAILS = ['your-email@gmail.com'];
+1 -1
View File
@@ -127,7 +127,7 @@
const userData = parseJwt(credential);
// Email whitelist verification
const allowedEmails = ['your-email@gmail.com'];
const allowedEmails = window.ALLOWED_EMAILS || ['your-email@gmail.com'];
if (!allowedEmails.includes(userData.email)) {
document.getElementById('error-msg').textContent = 'Access denied: unauthorized email.';
document.getElementById('error-msg').style.display = 'block';