Appwrite es una herramienta excelente para usar si quieres crear aplicaciones rápidamente, pero a veces puedes encontrarte con errores que pueden ser frustrantes y, para mí, esos errores siempre se referían a "Falta el rol de usuario" o "usuario no autorizado para hacer esto", etc. Aunque tengo acceso completo a cualquier instancia de mi aplicación para hacer cualquier cosa.
Pero finalmente encontré una manera de solucionarlos todos (bueno, tal vez no todos, pero me gustaría pensar eso).
Entonces, esta publicación de discordia en realidad lo explicó de una manera muy sutil.
El problema es asegurarse de que haya una sesión utilizando cualquiera de estos métodos, es decir, cualquiera que esté utilizando en su proyecto.
Permítanme darles un ejemplo en el que me encontré con este error para que quede más claro.
Tenía una página de registro y lo que quiero hacer es que tan pronto como el usuario haga clic en crear cuenta o registrarse, debería activarse un correo electrónico de verificación, pero recibí el error de que el usuario no está autorizado. La solución fue crear una sesión antes de activar el correo electrónico, así que vea el siguiente código sobre cómo estoy creando una sesión antes de activar el correo electrónico:
"use client"; import Link from "next/link"; import { FormEvent } from "react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { createAuthAccount } from "@/app/appwrite/createAuthAccount"; import { createLoginSession } from "@/app/appwrite/createLoginSession"; import { useRouter } from "next/navigation"; import { sendVerificationEmail } from "@/app/appwrite/sendVerificationEmail"; export const description = "A sign up form with first name, last name, email and password inside a card. There's an option to sign up with GitHub and a link to login if you already have an account"; export default function LoginForm() { const router = useRouter(); const signUpFormHandler = async (event: FormEvent) => { event.preventDefault(); const formData = new FormData(event.target as HTMLFormElement); const data = Object.fromEntries(formData.entries()); const createdAccount = await createAuthAccount({ email: data?.email.toString(), password: data?.password.toString(), name: data?.["full-name"].toString(), }); if (createdAccount?.$id) { await createLoginSession({ email: data?.email.toString(), password: data?.password.toString(), }); await sendVerificationEmail(); } }; return (); } Sign Up Enter your information to create an account Already have an account?{" "} Sign in
Este es solo un ejemplo que describe cuál era el comportamiento previsto, lo que estaba sucediendo y lo que se suponía que debía hacerse.
Solo quería compartirlo en caso de que algún nuevo principiante en Appwrite como yo enfrente este error. En general, he descubierto que en casi todos los casos, cuando recibo errores de alcance o errores de usuario no autorizado, al crear una sesión o al menos asegurarme de que existe una sesión antes de llamar a ese método, se solucionan esos problemas. Así que pruébalos y cuéntame qué pasa
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3