TypeScript
// src/lib/appwriteConfig.js
import { Client, Account, Databases } from "appwrite";
const client = new Client()
.setEndpoint(import.meta.env.VITE_APPWRITE_API_ENDPOINT)
.setProject(import.meta.env.VITE_APPWRITE_PROJECT_ID);
const account = new Account(client);
const databases = new Databases(client);
export { client, account, databases };
TypeScript
// Register.jsx
import { account } from "../lib/appwriteConfig";
import { Button } from "@mui/material";
export default function Register() {
const navigate = useNavigate();
const {
register: authRegister,
isLoading,
error,
clearError,
} = useAuthStore();
const {
register,
handleSubmit,
formState: { errors },
} = useForm({
resolver: zodResolver(schema),
defaultValues: {
role: "client",
},
});
const onSubmit = async (formData) => {
try {
clearError();
const user = await authRegister(formData);
if (user) {
navigate(`/${formData.role}/dashboard`);
}
} catch (error) {
console.error("Registration error:", error);
}
};
const handleGoogleLogin = async () => {
try {
clearError();
await account.createOAuth2Session(
"google",
`${window.location.origin}/dashboard`, // Success URL
`${window.location.origin}/login` // Failure URL
);
} catch (error) {
console.error("Google login error:", error);
}
};
useEffect(() => {
return () => clearError();
}, [clearError]);
return (
<Button onClick={handleGoogleLogin}>Contienue with Google</Button>)
{rest of the code is just a form for signing up normally}
}
TL;DR
Developers are encountering a 'User missing scope account' error in their code. The issue lies in the missing 'account' scope during authentication. To resolve, ensure that the client has the necessary scope for account operations in the Appwrite configuration.Recommended threads
- Middleware
how to make middleware in nextjs appwrite with client side auth?
- Error 400: redirect_uri_mismatch
Hi team, Google OAuth was working fine with our Appwrite Cloud setup until yesterday. We did not change any configuration in Appwrite, Google Cloud, or our cod...
- Bulk delete failed with 401
- I created a transaction to bulk delete rows in a table has `done` equal `true` follow documentation. But when run, it returns 401 unauthorized error as screen...