selfhostable, read-only reddit client
16
fork

Configure Feed

Select the types of activity you want to include in your feed.

invalidate registered tokens properly

Akshay c5cd65eb d4a83cb4

+5 -8
-4
scripts/gen-invite.js
··· 4 4 strict: true, 5 5 }); 6 6 7 - // Create the invites table if it doesn't exist 8 7 db.run(` 9 8 CREATE TABLE IF NOT EXISTS invites ( 10 9 id INTEGER PRIMARY KEY AUTOINCREMENT, ··· 14 13 ) 15 14 `); 16 15 17 - // Generate a new invite token 18 16 function generateInviteToken() { 19 17 const hasher = new Bun.CryptoHasher("sha256", "super-secret-invite-key"); 20 18 return hasher.update(Math.random().toString()).digest("hex"); 21 19 } 22 20 23 - // Store the token in the database 24 21 function createInvite() { 25 22 const token = generateInviteToken(); 26 23 db.run("INSERT INTO invites (token) VALUES ($token)", { token }); 27 24 console.log(`Invite token created: ${token}`); 28 25 } 29 26 30 - // CLI usage 31 27 const command = process.argv[2]; 32 28 const arg = process.argv[3]; 33 29
+1 -1
src/invite.js
··· 11 11 } 12 12 13 13 const invite = db 14 - .query("SELECT * FROM invites WHERE token = $token AND usedAt IS null") 14 + .query("SELECT * FROM invites WHERE token = $token") 15 15 .get({ token }); 16 16 17 17 if (!invite) {
+1
src/public/styles.css
··· 499 499 } 500 500 501 501 .register-error-message { 502 + margin-bottom: 1rem; 502 503 flex-flow: row wrap; 503 504 color: var(--error-text-color); 504 505 }
+3 -3
src/routes/index.js
··· 20 20 res.redirect("/r/all"); 21 21 } else { 22 22 const p = subs.map((s) => s.subreddit).join("+"); 23 - console.log(p); 24 23 res.redirect(`/r/${p}`); 25 24 } 26 25 }); ··· 143 142 try { 144 143 const hashedPassword = await Bun.password.hash(password); 145 144 146 - db.query("UPDATE invites SET usedAt = CURRENT_TIMESTAMP WHERE id = $id", { 145 + db.query( 146 + "UPDATE invites SET usedAt = CURRENT_TIMESTAMP WHERE id = $id", 147 + ).run({ 147 148 id: req.invite.id, 148 149 }); 149 150 ··· 165 166 }) 166 167 .redirect("/"); 167 168 } catch (err) { 168 - console.log(err); 169 169 return res.render("register", { 170 170 message: "error registering user, try again later", 171 171 });