W
Wasp•2mo ago
john

how to customize the signup verification logic in the version 0.11.8?

I'm using version 0.11.8 so, when I try to create a user with email which already then it shows the message that signup is successful, instaed I want error message, so how can I customize or change this logic?
9 Replies
kapa.ai
kapa.ai•2mo ago
Hi @john. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- To customize the signup verification logic in Wasp version 0.11.8, you can create a custom sign-up action. This will allow you to handle the case where an email already exists and return an appropriate error message. Here's how you can do it: 1. First, create a custom sign-up action in your main.wasp file:
action customSignup {
fn: import { signup } from "@src/auth/signup.js",
}
action customSignup {
fn: import { signup } from "@src/auth/signup.js",
}
2. Then, create a signup.js (or signup.ts if you're using TypeScript) file in your src/auth/ directory. Here's an example of how you can implement the custom signup logic:
import {
ensurePasswordIsPresent,
ensureValidPassword,
ensureValidEmail,
createProviderId,
sanitizeAndSerializeProviderData,
findAuthIdentity,
createUser,
} from 'wasp/server/auth'

export const signup = async (args, _context) => {
ensureValidEmail(args)
ensurePasswordIsPresent(args)
ensureValidPassword(args)

try {
const providerId = createProviderId('email', args.email)
const existingAuthIdentity = await findAuthIdentity(providerId)

if (existingAuthIdentity) {
return {
success: false,
message: 'Email already exists',
}
} else {
const providerData = await sanitizeAndSerializeProviderData({
hashedPassword: args.password,
})
await createUser(
providerId,
providerData,
{},
)
return {
success: true,
message: 'User created successfully',
}
}
} catch (e) {
return {
success: false,
message: e.message,
}
}
}
import {
ensurePasswordIsPresent,
ensureValidPassword,
ensureValidEmail,
createProviderId,
sanitizeAndSerializeProviderData,
findAuthIdentity,
createUser,
} from 'wasp/server/auth'

export const signup = async (args, _context) => {
ensureValidEmail(args)
ensurePasswordIsPresent(args)
ensureValidPassword(args)

try {
const providerId = createProviderId('email', args.email)
const existingAuthIdentity = await findAuthIdentity(providerId)

if (existingAuthIdentity) {
return {
success: false,
message: 'Email already exists',
}
} else {
const providerData = await sanitizeAndSerializeProviderData({
hashedPassword: args.password,
})
await createUser(
providerId,
providerData,
{},
)
return {
success: true,
message: 'User created successfully',
}
}
} catch (e) {
return {
success: false,
message: e.message,
}
}
}
This custom signup action checks if a user with the given email already exists. If it does, it returns an error message. If not, it creates a new user. Creating a Custom Sign-up Action (https://wasp-lang.dev/docs/auth/email#creating-a-custom-sign-up-action) Remember to use the built-in field validators imported from wasp/server/auth to ensure the validity of the input data. By implementing this custom signup action, you'll be able to return an error message when a user tries to sign up with an email that already exists in your system, instead of showing a successful signup message. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ---------------------- Sorry @john, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?
john
johnOP•2mo ago
where to create the signup file @kapa.ai
kapa.ai
kapa.ai•2mo ago
Let me check the knowledge base for you again. One moment! :books: ---------------------- Based on the information provided in the knowledge sources, you should create the signup file in the src/auth/ directory of your Wasp project. Specifically: 1. For JavaScript projects, create a file named signup.js in the src/auth/ directory. 2. For TypeScript projects, create a file named signup.ts in the src/auth/ directory. This is consistent with the examples shown in the Creating a Custom Sign-up Action (https://wasp-lang.dev/docs/auth/email#creating-a-custom-sign-up-action) documentation, where the import statement in the main.wasp file references "@src/auth/signup.js" or "@src/auth/signup.ts". Remember to also update your main.wasp file to include the custom signup action, pointing to the newly created file:
action customSignup {
fn: import { signup } from "@src/auth/signup.js", // or signup.ts for TypeScript
}
action customSignup {
fn: import { signup } from "@src/auth/signup.js", // or signup.ts for TypeScript
}
This structure ensures that your custom signup logic is properly integrated into your Wasp application. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ---------------------- Sorry @john, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?
john
johnOP•2mo ago
also it whould be in version 0.11.8 not in 0.15.0 @kapa.ai
kapa.ai
kapa.ai•2mo ago
Let me check the knowledge base for you again. One moment! :books: Sorry @john, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?
john
johnOP•2mo ago
@kapa.ai
kapa.ai
kapa.ai•2mo ago
Let me check the knowledge base for you again. One moment! :books: Sorry @john, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist: Perhaps try again in 15mins?
john
johnOP•2mo ago
@Wasp Team @Wasp Expert
miho
miho•2mo ago
There is no need to tag the team - we'll pick it up when we see it 🙂
I'm using version 0.11.8 so, when I try to create a user with email which already then it shows the message that signup is successful, instaed I want error message,
Bot gave an okay answer, you can't change that logic without going full custom with the signup flow. We have docs for version 0.11.8, have you read those? https://wasp-lang.dev/docs/0.11.8 🙂 Here is the revelant bit: https://wasp-lang.dev/docs/0.11.8/auth/overview#customizing-the-signup-process I'd generally suggest upgrading since 0.11.8 is an old version with outdated dependencies.
Want results from more Discord servers?
Add your server