Invalid userId: Parameter must contain at most 36 chars. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special character
That's the error am seeing when I tried to sign up using appwrite auth
Can you share the create
function code?
This right
mport React, { useState } from "react"; import { account } from "./appwrite"; import "./auth.css" import { v4 as uuidv4 } from 'uuid';
function Signup() { const [username, setUsername] = useState(""); const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState("");
const handleSignup = async (e) => { e.preventDefault();
try {
// Validate inputs
if (!username || !email || !password) {
setError("Please fill in all fields");
return;
}
// Call the createAccount method from appwrite object
const randomString = Math.random().toString(36).substring(2, 15);
// Combine username and random string to create user ID
const userId = `${username.replace(/[^a-zA-Z0-9.-_]/g, "").toLowerCase()}_${randomString}`
await account.create(email, password, username, userId);
// User sign-up successful, perform further actions like redirecting to the main page
// or updating the application state
console.log("User signed up successfully");
} catch (error) {
setError( error.message);
console.error("Failed to sign up", error);
}
};
import { Client, Account } from 'appwrite';
const appwrite = new Client(); appwrite.setEndpoint('myendpoint'); appwrite.setProject('myid');
const account = new Account(appwrite);
export { appwrite, account };
Everything seems fine, Just change the variables order in the function to this
await account.create(userId, email, password, username);
You can explore it here https://appwrite.io/docs/client/account?sdk=web-default#accountCreate
Wow! thank you it's working now
Can you mark it as solved @Devben.tech ?
How do I do that ?
I'll do it, np!
[SOLVED] Invalid userId:
Okayt thanks
Recommended threads
- How to Avoid Double Requests in function...
I'm currently using Appwrite's `functions.createExecution` in my project. I want to avoid double requests when multiple actions (like searching or pagination) a...
- Send Email Verification With REST
I am using REST to create a user on the server side after receiving form data from the client. After the account is successfully created i wanted to send the v...
- Use different email hosts for different ...
Hello, I have 2 projects and i want to be able to set up email templates in the projects. Both projects will have different email host configurations. I see ...