Changeset 09ecc5f in Klonkt
- Timestamp:
- 06/19/2026 10:03:52 AM (3 months ago)
- Branches:
- main
- Children:
- f83ccf3
- Parents:
- f33b24a
- Location:
- src
- Files:
-
- 1 added
- 3 edited
-
routes/admin-settings.js (modified) (1 diff)
-
views/pages/admin-google.ejs (added)
-
views/pages/admin-settings.ejs (modified) (1 diff)
-
views/pages/admin.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/admin-settings.js
rf33b24a r09ecc5f 139 139 }); 140 140 141 // Google-login op een eigen Beheer-pagina (los van de algemene instellingen). 142 router.get('/google', requireGod, (req, res) => { 143 renderPage(req, res, 'pages/admin-google', { 144 pageTitle: 'Google-login', 145 bodyClass: 'on-admin', 146 google: { 147 configured: googleConfigured(), 148 redirectUri: redirectUri(), 149 clientId: currentClientId(), 150 secretSet: clientSecretSet(), 151 }, 152 success: req.query.success || null, 153 error: req.query.error || null, 154 }); 155 }); 156 141 157 // Google-login (luisteraars) configureren — Client ID + Secret in app_settings. 142 158 // De redirect-URI leiden we af van PUBLIC_BASE_URL (zie config/google.js). -
src/views/pages/admin-settings.ejs
rf33b24a r09ecc5f 129 129 <% } %> 130 130 131 <%# Google-login voor luisteraars (reageren) — per-site eigen Google-client. %>131 <%# Google-login staat op een eigen Beheer-pagina (compacte link hier). %> 132 132 <section class="set-card" style="margin-top:1rem"> 133 133 <h2>Google-login (luisteraars)</h2> 134 <p class="set-help">Laat bezoekers met Google inloggen om te reageren — met je <strong>eigen</strong> 135 Google Cloud-client. Maak er een aan op 136 <a href="https://console.cloud.google.com/apis/credentials" target="_blank" rel="noopener">console.cloud.google.com</a> 137 (OAuth client-ID, type "Web application"). 134 <p class="set-help">Laat bezoekers met Google inloggen om te reageren — met je eigen Google Cloud-client. 138 135 <% if (google && google.configured) { %><strong>Status: ingesteld ✓</strong><% } else { %>Nog niet ingesteld.<% } %></p> 139 140 <details class="set-google-guide"> 141 <summary>Hoe stel ik dit in? (stap voor stap)</summary> 142 <ol class="set-google-steps"> 143 <li>Ga naar de <a href="https://console.cloud.google.com/" target="_blank" rel="noopener">Google Cloud Console</a> en maak (of kies) een project.</li> 144 <li><strong>APIs & Services → OAuth consent screen</strong>: User type <strong>External</strong>. Voeg de scopes <code>email</code>, <code>profile</code> en <code>openid</code> toe. (In testmodus: voeg jezelf toe als testgebruiker.)</li> 145 <li><strong>APIs & Services → Credentials → Create credentials → OAuth client ID</strong>, type <strong>Web application</strong>.</li> 146 <li>Bij <strong>Authorized redirect URIs</strong>: plak de redirect-URI hieronder (moet <strong>exact</strong> matchen).</li> 147 <li>Kopieer de <strong>Client ID</strong> + <strong>Client Secret</strong> die je krijgt naar de velden hieronder en klik Opslaan.</li> 148 </ol> 149 <p class="set-help" style="margin:.5rem 0 0"><strong>Let op:</strong> je hoeft <strong>geen API's aan te zetten</strong> — "Google Cloud APIs", People API e.d. zijn <em>niet</em> nodig. Inloggen werkt via OpenID Connect (alleen het toestemmingsscherm + de OAuth-client).</p> 150 </details> 151 152 <% if (google && google.redirectUri) { %> 153 <p class="set-help" style="margin-bottom:.7rem">Zet deze <strong>exacte</strong> redirect-URI in je Google-client 154 (Authorized redirect URIs):<br><code style="user-select:all"><%= google.redirectUri %></code></p> 155 <% } else { %> 156 <p class="set-help" style="color:var(--accent)">Stel eerst <code>PUBLIC_BASE_URL</code> in — daar wordt de redirect-URI van afgeleid.</p> 157 <% } %> 158 159 <form method="post" action="/admin/settings/google" class="set-form"> 160 <label class="set-field"> 161 <span>Client ID</span> 162 <input type="text" name="google_client_id" value="<%= google ? google.clientId : '' %>" placeholder="123-abc.apps.googleusercontent.com" autocomplete="off"> 163 </label> 164 <label class="set-field"> 165 <span>Client Secret <% if (google && google.secretSet) { %><small style="font-weight:400">— ingesteld; leeg laten = ongewijzigd</small><% } %></span> 166 <input type="password" name="google_client_secret" placeholder="<%= (google && google.secretSet) ? '•••••••• (ingesteld)' : 'GOCSPX-…' %>" autocomplete="off"> 167 </label> 168 <div style="display:flex; gap:.5rem; flex-wrap:wrap"> 169 <button type="submit" class="btn btn-primary">Opslaan</button> 170 <% if (google && (google.clientId || google.secretSet)) { %> 171 <button type="submit" name="clear" value="1" class="btn">Loskoppelen</button> 172 <% } %> 173 </div> 174 </form> 175 <% if (typeof premiumEnabled !== 'undefined' && premiumEnabled && !(premium && premium.premium)) { %> 176 <p class="set-help" style="margin-top:.7rem; color:var(--accent)">Premium-laag staat aan zonder Patreon — de Google-knop blijft verborgen tot premium ontgrendeld is.</p> 177 <% } %> 136 <div class="set-actions"><a href="/admin/settings/google" class="btn btn-primary">Google-login instellen →</a></div> 178 137 </section> 179 138 -
src/views/pages/admin.ejs
rf33b24a r09ecc5f 39 39 <a href="/admin/shows" class="btn">📅 Agenda</a> 40 40 <% } %> 41 <a href="/admin/settings/google" class="btn">🔑 Google-login</a> 41 42 <a href="/admin/updates" class="btn">🔄 Updates</a> 42 43 </nav>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)