جشنواره عیدانه راکت | عضویت ویژه راکت برای آخرین بار | افزایش قیمت‌ها از سال جدید | و ...

مشاهده اطلاعات بیشتر...
ثانیه
دقیقه
ساعت
روز
حمید قربانی
3 سال پیش توسط حمید قربانی مطرح شد
1 پاسخ

هدایت کاربر به صفحه لاگین علیرغم انجام احراز هویت موفقیت آمیز

سوالم که فکر میکنم واضح باشه. اینجا وضعیت کدهامو میذارم. در ضمن من از حالت universal در ناکست استفاده میکنم. از لاراول 8 استفاده میکنم. البته با 7 هم همین مساله بود.

فایل nuxt.config.js:

modules: [
    '@nuxtjs/axios',
    '@nuxtjs/pwa',
    '@nuxtjs/auth-next',
    'cookie-universal-nuxt',
  ],
  axios: {
    baseURL: 'http://localhost:8000',
    credentials: true,
  },
  auth: {
    strategies: {
      'laravelSanctum': {
        provider: 'laravel/sanctum',
        url: 'http://localhost:8000',
      },
    },
    redirect: {
      login: '/login',
      logout: '/',
      callback: '/login',
      home: '/'
    }
  },

متد لاگین در صفحه login.vue:

    async login() {
      this.processing = true;
      await this.$store.dispatch('postLogin/login', {
        data: {
          email: this.email,
          password: this.password,
        }
      });
      await console.log('error in vue:', this.$store.getters["postLogin/user"]);
    },

فایل postLogin.js درون store:

export const state = () => ({
  user: []
})

export const mutations = {
  getUser(state, user) {
    state.user = user
  }
}

export const actions = {
  async login({commit}, credentials) {
    try {
      await this.$axios.$get('sanctum/csrf-cookie')
      await this.$auth.loginWith('laravelSanctum', credentials).then(response => {
        //this.$router.push(`/`);
        console.log('response', this.$auth.user)
        const user = this.$auth.user;
        commit('getUser', user)
      })
      .catch(({response}) => {
        console.log('errorrrr:', response.data.errors)
        commit('getUser', response.data.errors)
      })

    } catch (error) {
      console.log('error catch:', error)
      commit('getUser', error)
    }
  }
}

export const getters = {
  user(state) {
    return state.user
  }
}

وضعیت .env در لاراول:

SESSIONDOMAIN=localhost  
SANCTUMSTATEFULDOMAINS=localhost:3000

بعد ازلاگین با اطلاعات درست کاربر به صفحه کاربری خودش هدایت میشه اما با رفرش کردن دوباره بر میگرده به لاگین. علیرغم اینکه وقتی از state.auth.loggedIn هم استعلام میگیرم وضعیت true هست.


ثبت پرسش جدید
علی
تخصص : Laravel
@alif 3 سال پیش مطرح شد
-1

من کد زیر رو گذاشتم جواب گرفتم ولی نمیدونم درست هست روشش یا نه

  strategies: {
            local: {
                endpoints:{
                    login: {
                        url: '/api/auth/login',
                        method: 'post',
                        propertyName: 'meta.token'
                    },
                    logout: {
                        url: '/api/auth/logout',
                        method: 'post'
                    },
                    user:{
                        url: '/api/auth/me',
                        method: 'get' ,
                        propertyName: 'data'
                    }
                }
            }

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام