Fix email logic in session callback for email signup

This commit is contained in:
austinkelsay 2024-10-06 17:39:37 -05:00
parent 8c5a1f888e
commit 2e71310661

View File

@ -72,7 +72,7 @@ const authorize = async (pubkey) => {
console.error("Failed to update user"); console.error("Failed to update user");
return null; return null;
} }
const fullUser = await getUserByPubkey(pubkey); const fullUser = await getUserByPubkey(pubkey);
return { ...fullUser, kind0: fields }; return { ...fullUser, kind0: fields };
@ -137,27 +137,6 @@ export const authOptions = {
const newUser = await authorize(token.user.pubkey); const newUser = await authorize(token.user.pubkey);
token.user = newUser; token.user = newUser;
} }
// if the user has no pubkey, generate a new key pair
// if (token && token?.user && token?.user?.id && !token.user?.pubkey) {
// try {
// let sk = generateSecretKey()
// let pk = getPublicKey(sk)
// let skHex = bytesToHex(sk)
// const updatedUser = await updateUser(token.user.id, { pubkey: pk, privkey: skHex });
// if (!updatedUser) {
// console.error("Failed to update user");
// return null;
// }
// const fullUser = await getUserByPubkey(pk);
// if (fullUser && fullUser.email === "austinkelsay@protonmail.com") {
// console.log("FULLLSNDE", fullUser);
// }
// token.user = fullUser;
// } catch (error) {
// console.error("Ephemeral key pair generation error:", error);
// return null;
// }
// }
if (user) { if (user) {
token.user = user; token.user = user;
@ -168,23 +147,24 @@ export const authOptions = {
if (session.user?.email) { if (session.user?.email) {
const existingUser = await getUserByEmail(session.user.email); const existingUser = await getUserByEmail(session.user.email);
if (existingUser) { if (existingUser) {
console.log("EXISTING USER", existingUser); if (!existingUser?.pubkey) {
session.user = existingUser; let sk = generateSecretKey()
token.user = existingUser; let pk = getPublicKey(sk)
} else { let skHex = bytesToHex(sk)
console.log("CREATING USER", session, token); const updatedUser = await updateUser(existingUser.id, { pubkey: pk, privkey: skHex });
const createdUser = await createUser({ email: session.user.email }); if (!updatedUser) {
let sk = generateSecretKey() console.error("Failed to update user");
let pk = getPublicKey(sk) return null;
let skHex = bytesToHex(sk) }
const updatedUser = await updateUser(createdUser.id, { pubkey: pk, privkey: skHex }); const fullUser = await getUserByPubkey(pk);
if (!updatedUser) { session.user = fullUser;
console.error("Failed to update user"); token.user = fullUser;
return null; return session;
} else {
session.user = existingUser;
token.user = existingUser;
return session;
} }
const fullUser = await getUserByPubkey(pk);
session.user = fullUser;
token.user = fullUser;
} }
} }
// Add user from token to session // Add user from token to session