Laten we dit direct oplossen. Het niet kunnen inloggen komt meestal door een van de volgende twee dingen:
Het tabblad Users bestaat nog niet in je Google Sheet, of de kolomstructuur komt niet exact overeen met wat de code verwacht.
Er is nog geen account aangemaakt in de sheet om mee in te loggen.
Zorg ervoor dat je in jouw Google Sheet (open sheet) een tabblad hebt dat exact Users heet (hoofdlettergevoelig!).
Zet op rij 1 van dat tabblad de volgende kolomkoppen:
UserID | Email | PasswordHash | Name | Role | CreatedAt
Als je nog geen account hebt geregistreerd, kun je in je webview op de knop "Nog geen account? Registreer hier (Gratis voorproefje)" klikken.
Mocht je direct via de Apps Script-editor een beheerder/testaccount willen toevoegen zodat je zeker weet dat het werkt, voer dan eenmalig deze korte functie uit in je Apps Script-editor:
JavaScript
function maakTestAccount() {
const ss = SpreadsheetApp.openById("1cl2uFtN05D6Yw78R9QtpiVMBjvXGINmMdI01A3Fhons");
let sheet = ss.getSheetByName("Users");
if (!sheet) {
sheet = ss.insertSheet("Users");
sheet.appendRow(["UserID", "Email", "PasswordHash", "Name", "Role", "CreatedAt"]);
}
// Voeg een testaccount toe (pas e-mail en wachtwoord gerust aan)
sheet.appendRow(["USR_123", "Gabeler.eu@gmail.com", "welkom123", "Stijn Gabeler", "Admin", new Date()]);
Logger.p("Testaccount aangemaakt!");
}
(Klik boven in de Apps Script-editor op het pijltje bij "Uitvoeren" en selecteer maakTestAccount). Daarna kun je inloggen met Gabeler.eu@gmail.com en wachtwoord welkom123.
Zorg ervoor dat je Code.gs exact de onderstaande login- en registratiefuncties bevat, zodat e-mailadressen ongevoelig zijn voor hoofdletters en spaties:
JavaScript
const SS_ID = "1cl2uFtN05D6Yw78R9QtpiVMBjvXGINmMdI01A3Fhons";
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('Index')
.setTitle('G20 Coaching by Gabeler.eu')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
function loginUser(email, password) {
const ss = SpreadsheetApp.openById(SS_ID);
const sheet = ss.getSheetByName("Users");
if (!sheet) return { success: false, message: "Tabblad 'Users' ontbreekt in de Google Sheet." };
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
let sheetEmail = String(data[i][1]).trim().toLowerCase();
let inputEmail = String(email).trim().toLowerCase();
let sheetPass = String(data[i][2]);
let inputPass = String(password);
if (sheetEmail === inputEmail && sheetPass === inputPass) {
return {
success: true,
user: { userId: data[i][0], email: data[i][1], name: data[i][3] }
};
}
}
return { success: false, message: "Onjuist e-mailadres of wachtwoord." };
}
function registerUser(email, password, name) {
const ss = SpreadsheetApp.openById(SS_ID);
let sheet = ss.getSheetByName("Users");
if (!sheet) {
sheet = ss.insertSheet("Users");
sheet.appendRow(["UserID", "Email", "PasswordHash", "Name", "Role", "CreatedAt"]);
}
const data = sheet.getDataRange().getValues();
for (let i = 1; i < data.length; i++) {
if (String(data[i][1]).trim().toLowerCase() === String(email).trim().toLowerCase()) {
return { success: false, message: "Dit e-mailadres is al geregistreerd." };
}
}
const userId = "USR_" + new Date().getTime();
sheet.appendRow([userId, email, password, name, "User", new Date()]);
return { success: true, user: { userId, email, name } };
}
Heb je dit gecontroleerd en werkt het inloggen direct weer naar behoren?