"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > [Résolu] Rôle utilisateur Appwrite manquant ou erreurs de portée manquantes

[Résolu] Rôle utilisateur Appwrite manquant ou erreurs de portée manquantes

Publié le 2024-11-08
Parcourir:900

[Solved] Appwrite user role missing or missing scope errors

Appwrite est un outil génial à utiliser si vous souhaitez créer des applications rapidement, mais vous pouvez parfois rencontrer des erreurs qui peuvent être frustrantes et pour moi, ces erreurs concernaient toujours le "Rôle utilisateur manquant" ou "utilisateur non autorisé à faire cela", etc. Même si j'ai un accès complet à toute instance de mon application faisant quoi que ce soit.

Mais finalement, j'ai trouvé un moyen de tous les réparer (enfin peut-être pas tous, mais j'aimerais le penser).

Donc, ce message Discord l'a expliqué de manière très subtile.

Le problème est de vous assurer qu'il y a une session en utilisant l'une de ces méthodes, je veux dire celle que vous utilisez dans votre projet.

  • créer une session anonyme
  • créer une session de mot de passe de courrier électronique
  • créerOAuth2Session
  • créer une session

Permettez-moi de vous donner un exemple où j'ai rencontré cette erreur, cela pourrait être plus clair.

J'avais une page d'inscription et ce que je veux faire, c'est que dès que l'utilisateur clique sur créer un compte ou s'inscrire, cela devrait déclencher un e-mail de vérification, mais j'obtenais l'erreur indiquant que l'utilisateur n'est pas autorisé. La solution était de créer une session avant de déclencher l'e-mail, alors voyez le code suivant comment je crée une session avant de déclencher l'e-mail :

"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
); }

Ceci n'est qu'un exemple qui décrit quel était le comportement prévu, ce qui se passait et ce qui était censé être fait.

Je voulais juste le partager au cas où de nouveaux débutants dans Appwrite comme moi seraient confrontés à cette erreur. Dans l'ensemble, j'ai constaté que presque dans tous les cas, lorsque j'obtiens des erreurs de portée ou des erreurs d'utilisateur non autorisé, la création d'une session ou au moins le fait de m'assurer qu'une session existe avant d'appeler cette méthode résolvent ces problèmes. Alors essayez-les et dites-moi ce qui se passe

Déclaration de sortie Cet article est reproduit à l'adresse : https://dev.to/kaushal01/solved-appwrite-user-role-missing-or-missing-scope-errors-59d3?1 En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3