توضیحات

در این جلسه به بخش دوم register یا عضویت کاربر از دوره آموزش ناکست جی اس (nuxt.js) میپردازیم.


javascript جاوا اسکریپت nodejs نود جی اس vuejs ویو جی اس vuex ویو ایکس nuxt.js ناکست جی اس nuxt.js v3 ناکست جی اس ورژن 3

مدرس دوره علی شیخ
مدت دوره 09:18:11
تعداد ویدیو 45

وضعیت دوره : کامل شده
قیمت دوره : 599,000 539,000 تومان

نظرات ارزشمند شما:

برای ارسال نظر ابتدا باید وارد سایت شوید

  • سلام
    خسته نباشید
    یه مشکلی پیش اومده، یوزر رو که میخوام بسازم، میسازه، تو دیتابیس ذخیره میشه، اما تو کوکی سِت نمیشه کُدَم رو با کد شما چک کردم همه چیش یکی بود، مشکل از چیه؟

    • سلام وقت بخیر.
      باید خط به خط دیباگ و لاگ کنید مانند ویدیو، که آیا دیتا بدرستی برگشت داده میشه و شما بدرستی توکن را دریافت و توی متغیر ست میکنید. اول با پست من چک کردید که توکن از طرف api برگشت داده میشه و ... نیاز به دیباگ داره
      حتی میتوانید یک مقدار تستی و بصورت استرینگ هم قرار بدید ببینید کوکی ست میشه و بعد متغیر توکن را قرار بدید

    • این کارا رو کردم، اما کلا انگار کوکی توی مرورگرم سِت نمیشه، یه مقدار رندم string گذاشتم تو سِت کوکی که بعد از گرفتن دیتا اونو توی کوکی سِت کنه، اما کلا هیچی انگار تو کوکی سِت نمیشه، میتونه مشکل از دستور setCoockie باشه؟ یا حتی خود مرورگر؟ مرورگرم کروم هستش.

    • چک کنید که return قرار دادید، یا کل اون تکه سورس کدی که در اختیارتون هست را کپی و توی فایل خودتون قرار و تست کنید.

    • این کد سمت سرورش هست :

       export default defineEventHandler(async (event) => {
      
      const body = await readBody(event)
      const { apiBase } = useRuntimeConfig()

      try {
      const data = await $fetch(`${apiBase}/api/register`, {
      method: 'POST',
      body: body,
      headers: {
      'Accept': 'application/json',
      }
      })



      setCookie(event, 'token', data.token, {
      httpOnly: true,
      secure: true,
      maxAge: 60 * 60 * 24 * 7, // 1 week
      path: '/'
      })

      return data.user;
      } catch (error) {
      return error
      }
      })


      این کد سمت کلاینتش:

      
      
      <script setup>
      import { useToast } from 'vue-toastification';

      const loading = ref(false)
      const errors = ref([]);
      const formData = reactive({
      name: "",
      email: "",
      password: "",
      c_password: ""
      });

      const toast = useToast();
      const { authUser } = useAuth();

      async function register() {

      try {
      loading.value = true
      const data = await $fetch('/api/auth/register', {
      method: 'POST',
      body: formData
      })

      authUser.value = data;
      console.log(authUser.value)
      toast.success("hmm");
      // return navigateTo('/')
      return 'hmm'
      }
      catch (err) {
      errors.value = Object.values(err.data.data).flat();
      } finally {
      loading.value = false
      }
      }
      </script>

    • والا باید دیباگ بشه و اینجوری مشخص نیست. شما روی مروگر دیگه هم تست کنید و از طرفی تب network از inscpect هم باید بررسی بشه که ارور داره یا نه
      اگه بازم مشکلی بود سورس کدتون را توی تلگرام پشتیبانی وب پروگ ارسال کنید تا براتون بررسی بشه

    • خسته نباشید استاد
      برای ست کوکی منم به مشکل خوردم
      بعد از کلی دیباگ و تست فهمیدم وقتی تو پارامتر اخر که اپشنال هست اگر secure: true رو بذاریم کوکی ست نمیشه.ولی اگه کلا secure نذاریم کار میکنه
      تو داکیومنت گیت هابش چیزی راجع به این موضوع ننوشته بود
      داکیومنت خودشونم به دلیل نداشتن vpn برام باز نشد

    • سلام والا عجیب هست این داستان، روی مروگر دیگه هم تست کنید. نباید مشگلی بخاطر secure باشه