यदि आप तेजी से एप्लिकेशन बनाना चाहते हैं तो Appwrite उपयोग करने के लिए अद्भुत उपकरण है, लेकिन कभी-कभी आपको ऐसी त्रुटियां मिल सकती हैं जो निराशाजनक हो सकती हैं और मेरे लिए वे त्रुटियां हमेशा "उपयोगकर्ता भूमिका गायब" या के बारे में थीं "उपयोगकर्ता ऐसा करने के लिए अधिकृत नहीं है" आदि। भले ही मुझे अपने ऐप के कुछ भी करने के किसी भी उदाहरण तक पूर्ण पहुंच प्राप्त है।
लेकिन आखिरकार मुझे उन सभी को ठीक करने का एक तरीका मिल गया है (शायद सभी को नहीं, लेकिन मैं ऐसा सोचना चाहूंगा)।
तो इस विवाद पोस्ट ने वास्तव में इसे बहुत ही सूक्ष्म तरीके से समझाया।
मुश्किल यह सुनिश्चित करना है कि इनमें से किसी भी तरीके का उपयोग करके एक सत्र हो, मेरा मतलब है कि जो भी आप अपने प्रोजेक्ट में उपयोग कर रहे हैं।
मैं आपको एक उदाहरण देता हूं जहां मुझे इस त्रुटि का सामना करना पड़ा तो यह अधिक स्पष्ट हो सकता है।
मेरे पास एक साइनअप पृष्ठ था और मैं जो करना चाहता हूं वह यह है कि जैसे ही उपयोगकर्ता खाता बनाएं या साइनअप पर क्लिक करता है, उसे एक सत्यापन ईमेल ट्रिगर करना चाहिए लेकिन मुझे त्रुटि मिल रही थी कि उपयोगकर्ता अधिकृत नहीं है। समाधान यह था कि ईमेल को ट्रिगर करने से पहले एक सत्र बनाया जाए, इसलिए निम्नलिखित कोड देखें कि मैं ईमेल को ट्रिगर करने से पहले कैसे सत्र बना रहा हूं:
"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
यह सिर्फ एक उदाहरण है जो दर्शाता है कि इच्छित व्यवहार क्या था और क्या हो रहा था और क्या किया जाना चाहिए था।
बस इसे साझा करना चाहता था ताकि मेरे जैसे ऐपराइटिंग में किसी नए शुरुआती को इस त्रुटि का सामना करना पड़े। कुल मिलाकर मैंने पाया है कि लगभग सभी मामलों में जब मुझे कोई स्कोप त्रुटियाँ या उपयोगकर्ता द्वारा अधिकृत नहीं की गई त्रुटियाँ मिल रही हैं तो एक सत्र बनाना या कम से कम यह सुनिश्चित करना कि उस विधि को कॉल करने से पहले एक सत्र मौजूद है, उन मुद्दों को ठीक कर देता है। तो इन्हें आज़माएं और मुझे बताएं कि क्या होता है
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3