«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > [Решено] Отсутствует роль пользователя Appwrite или отсутствуют ошибки области

[Решено] Отсутствует роль пользователя Appwrite или отсутствуют ошибки области

Опубликовано 8 ноября 2024 г.
Просматривать:584

[Solved] Appwrite user role missing or missing scope errors

Appwrite — отличный инструмент, который можно использовать, если вы хотите быстро создавать приложения, но иногда вы можете столкнуться с ошибками, которые могут расстраивать, и для меня эти ошибки всегда были связаны с «Отсутствует роль пользователя» или «пользователь не авторизован для этого» и т. д. Несмотря на то, что у меня есть полный доступ к любому экземпляру моего приложения, делающему что-либо.

Но, наконец, я нашел способ исправить их все (ну, возможно, не все, но мне хотелось бы так думать).

Так что этот пост о разногласиях на самом деле очень тонко объяснил это.

Загвоздка в том, чтобы убедиться в наличии сеанса, используя любой из этих методов, я имею в виду тот, который вы используете в своем проекте.

  • создать анонимный сеанс
  • createEmailPasswordSession
  • создатьOAuth2Session
  • создать сеанс

Позвольте мне привести пример, где я столкнулся с этой ошибкой, тогда будет более понятно.

У меня была страница регистрации, и я хочу, чтобы как только пользователь нажимал на создание учетной записи или регистрацию, должно запускаться электронное письмо с подтверждением, но я получал сообщение об ошибке, что пользователь не авторизован. Решение заключалось в том, чтобы создать сеанс перед отправкой электронного письма, поэтому посмотрите следующий код, как я создаю сеанс перед запуском электронного письма:

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

Это всего лишь пример, показывающий, каково было предполагаемое поведение, что происходило и что должно было быть сделано.

Просто хотел поделиться этим на случай, если кто-нибудь из новичков в Appwrite, таких как я, столкнется с этой ошибкой. В целом я обнаружил, что почти во всех случаях, когда я получаю какие-либо ошибки области или ошибки, не авторизованные пользователем, создание сеанса или, по крайней мере, проверка существования сеанса перед вызовом этого метода устраняет эти проблемы. Так что попробуйте и дайте мне знать, что получится

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/kaushal01/solved-appwrite-user-role-missing-or-missing-scope-errors-59d3?1. В случае нарушения прав обращайтесь по адресу [email protected]. удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3