this is my code, I want to verify the email before the user can login, but unable to do in createAccount part, how to do that and prevent unauthorized user from login
TypeScript
export const useAuth = () => {
// login user
const loginUser = async (auth) => {
try {
return await account.createEmailSession(auth.email, auth.password)
} catch (error) {
console.log(error)
throw error
}
}
// register user
const register = async (auth) => {
try {
const newAccount = await account.create(ID.unique(), auth.email, auth.password, auth.firstName+" "+auth.lastName)
if (!newAccount) {
throw Error
}
const avatarUrl = avatars.getInitials(auth.firstName + " " + auth.lastName, 200, 200)
return await saveUserToDB({
user_id: newAccount.$id,
email: newAccount.email,
first_name: auth.firstName,
last_name: auth.lastName,
avatar_url: avatarUrl,
bodhi_points: 0
})
} catch (e) {
console.log(e)
throw e
}
}
// save user to database
const saveUserToDB = async ( user) => {
try {
return await databases.createDocument(
appwriteConfig.databaseId,
appwriteConfig.userCollectionId,
ID.unique(),
user,
)
} catch (e) {
console.log(e)
throw e
}
}
return {
loginUser,
register,
saveUserToDB,
}
}
TL;DR
Developers want to verify user email before login but are facing issues with the process. To prevent unauthorized access, implement email verification during the account creation step before allowing login.Recommended threads
- Paused project can't activate
I have failed to reactivate one my projects which had been paused
- Site deployment keeps getting failed
Hi good folks, need a hand with Sites deploy Error on every deploy: Synchronous function execution timed out... duration doesn't exceed 30 seconds [exact log ...
- Unknown attribute type: varchar / text
Since the `string` type is deprecated I tried using `varchar` and `text` in some newer tables, but when running `appwrite pull tables && appwrite types ./src/li...