duplicate namespace auth / for the namespaced module auth

6
manshu 2019-12-14 19:55.

J'ai eu cette erreur après avoir installé le module nuxtjs. J'ai essayé toutes les astuces du livre pour résoudre ce problème, mais il semble que rien ne fonctionne.

[vuex] duplicate namespace auth/ for the namespaced module auth

J'en ai été frustré.

auth: {
    plugins: [{ src: '~/plugins/axios', ssr: true }, '~/plugins/auth.js'],
    vuex: {
      namespace: 'auth'
    },
    strategies: {
      local: {
        endpoints: {
          login: {
            url: "login",
            method: "post",
            propertyName: "meta.token"
          },
          user: {
            url: "me",
            method: "get",
            propertyName: false
          },
          logout: {
            url: "logout",
            method: "post"
          },
          redirect: {
            login: "login",
            logout: "/",
            home: "/",
            callback: "/"
          },
          watchLoggedIn: true,
          rewriteRedirects: true
        }
      }
    }
  },

Plugins

plugins: [
    { src: "~/plugins/Maps.js", ssr: false },
    { src: "~/plugins/Typed.js", ssr: false },
    { src: "~/plugins/Animate.js", ssr: false },
    { src: "~/plugins/Counter.js", ssr: false },
    { src: "~plugins/Vimeo.js", ssr: false },
    "~plugins/mixins/user.js",
    "~plugins/mixins/validation.js",
  ],

auth.js << ---- Magasin

export const getters = {
    authenticated(state) {
        return state.loggedIn;
    },
    user(state) {
        return state.user;
    }
};

export const state = () => ({
    busy: false,
    loggedIn: false,
    strategy: "local",
    user: false
});

Voici le code que j'ai actuellement. Si vous avez besoin de voir un autre fichier, n'hésitez pas à me le faire savoir.

https://www.youtube.com/watch?v=FojAfwueTLc

3 answers

12
Panos 2019-12-17 05:00.

Face au même problème aujourd'hui après une mise à jour. Résoudre:

Déplacez la logique auth.js vers index.js et supprimez auth.js.

index.js:

export const getters = {
    authenticated(state) {
      return state.auth.loggedIn
    },

    user(state) {
      return state.auth.user
    }
  }

Si vous utilisez un mixin user.js, modifiez-le comme suit:

import Vue from 'vue'
import {mapGetters} from 'vuex'

    const User = {
        install(Vue, options) {
            Vue.mixin({
                computed: {
                    ...mapGetters({
                        user: 'user',
                        authenticated: 'authenticated'
                    })
                }
            })
        }
    };

    Vue.use(User);
4
Victor Abbah Nkoms 2019-12-16 19:55.

Vous avez probablement un fichier dans votre dossier de magasin appelé "auth.js" et vous n'avez pas explicitement défini l'option vuex.namespace dans votre fichier nuxt.config.js.

De la documentation:

chaque fichier .js à l'intérieur du répertoire store est transformé en module d'espacement de noms (l'index étant le module racine).

Cela signifie donc que "auth" devient automatiquement un espace de noms.

Le problème est que "auth" est également l'espace de noms par défaut du magasin Vuex pour conserver l'état car l'option "vuex.namespace" de votre fichier nuxt.config.js est "auth" par défaut si aucune n'est définie explicitement. C'est là que vient le double.

Pour résoudre ce problème, changez votre store / auth.js en quelque chose de différent comme store / authentication.js ou changez votre option vuex.namespace dans votre fichier nuxt.config.js en autre chose que "auth" ou bien elle sera utilisée par défaut .

1
Imtiaz Pabel 2020-06-09 19:28.

Par défaut, Nuxt utilise l' espace de noms auth pour réserver les informations d'authentification. Si vous créez également un fichier auth.jsdans le répertoire du magasin, il y aura un conflit avec la configuration par défaut.

La solution fournie par "Panos"est tout à fait correcte. Mais si vous êtes vraiment intéressé par la création d'un nouveau module pour maintenir les informations d'authentification comme vous, vous pouvez créer un fichier Auth.jsau lieu du auth.jsrépertoire du magasin. Ce qui n'entrera pas en conflit avec l'espace de noms par défaut.

Ensuite, vous pouvez retourner les informations d'authentification à partir du module d'authentification nuxt, comme ci-dessous. Ici, j'attrape l'état du module d'authentification en utilisantrootState

export const getters = {
authenticated(state, getters, rootState) {
 return rootState.auth.loggedIn;
},

user(state, getters, rootState) {
 return rootState.auth.user;
}
};

De plus, si vous utilisez un mixin user.js, modifiez-le comme suit:

import Vue from "vue";
import { mapGetters } from "vuex";

const User = {
  install(Vue, options) {
  Vue.mixin({
  computed: {
    ...mapGetters("Auth", {
      user: "user",
      authenticated: "authenticated"
    })
  }
});
}
};
Vue.use(User);

MORE COOL STUFF

Jana Duggar : Tout ce qu'elle a dit sur l'amour et sa fenêtre de 5 ans pour trouver le « bon »

Jana Duggar : Tout ce qu'elle a dit sur l'amour et sa fenêtre de 5 ans pour trouver le « bon »

Jana Duggar a été ouverte sur sa recherche de l'amour. Voici tout ce qu'elle a dit sur le sujet et sa fenêtre de mariage de cinq ans.

Sam Heughan sait exactement ce qu'il retirera de l'ensemble "Outlander" - "J'ai l'impression d'être Jamie quand je les mets"

Sam Heughan sait exactement ce qu'il retirera de l'ensemble "Outlander" - "J'ai l'impression d'être Jamie quand je les mets"

La star d'Outlander, Sam Heughan, a récemment révélé ce qu'il retirera du tournage pour se souvenir de Jamie Fraser, le rôle qui a fait de lui une star.

La première chanson des Beatles qui était l'une des " performances les plus excitantes " du groupe, selon un initié de Fab Four

La première chanson des Beatles qui était l'une des " performances les plus excitantes " du groupe, selon un initié de Fab Four

"She Loves You" a été écrite en une heure, enregistrée en une journée, et a été la chanson des Beatles avec l'une de leurs meilleures performances de leur carrière.

Dolly Parton a aidé sa grand-mère "invalide" alors qu'aucun des autres petits-enfants ne le ferait - elle lui faisait aussi des blagues

Dolly Parton a aidé sa grand-mère "invalide" alors qu'aucun des autres petits-enfants ne le ferait - elle lui faisait aussi des blagues

Dolly Parton et sa grand-mère Bessie avaient une relation spéciale. Grand-mère Parton était très malade, mais cela n'a pas empêché Dolly de lui faire des farces.

Les origines de l'islam : une histoire religieuse

Les origines de l'islam : une histoire religieuse

Les origines de l'islam remontent au début du VIIe siècle dans la péninsule arabique. L'islam a débuté dans la ville de La Mecque, où un homme nommé Mahomet, un marchand prospère issu d'une puissante tribu, reçut une révélation divine.

Quel est le bois le plus dur au monde ?

Quel est le bois le plus dur au monde ?

Vous pensez peut-être que le chêne ou le noyer sont résistants, mais en matière de bois les plus durs au monde, ils sont loin derrière.

10 des créatures marines les plus terrifiantes qui rôdent dans les profondeurs de l'océan

10 des créatures marines les plus terrifiantes qui rôdent dans les profondeurs de l'océan

L'océan regorge de beauté, mais il abrite aussi certaines des créatures marines les plus terrifiantes de la planète. Nombre de ces animaux vivent dans les profondeurs obscures et sous haute pression des abysses.

Les 10 meilleurs enchantements d'épée dans Minecraft

Les 10 meilleurs enchantements d'épée dans Minecraft

Que vous affrontiez des créatures hostiles ou vous prépariez pour des affrontements PvP, connaître les meilleurs enchantements d'épée dans Minecraft peut vous donner un avantage considérable. Enchanter vos épées vous permet d'infliger plus de dégâts, d'augmenter le butin des créatures et d'accroître leur durabilité.

Récapitulatif de The Bear : Marcus est-il l'homme le plus gentil, le plus doux et le plus sincère de Chicago ?

Récapitulatif de The Bear : Marcus est-il l'homme le plus gentil, le plus doux et le plus sincère de Chicago ?

« Enfants » laisse tomber un caméo de grand nom et des nouvelles dévastatrices

À 9 800 $, voudriez-vous les emballer dans ce Toyota RAV4 2008 à sept places ?

À 9&nbsp;800&nbsp;$, voudriez-vous les emballer dans ce Toyota RAV4 2008 à sept places&nbsp;?

Ce RAV4 est déclaré en excellent état et est prêt pour un jeu de chaises musicales.

Une camionnette de livraison Amazon s'enflamme dans une explosion ardente pendant la chaleur estivale de Houston

Une camionnette de livraison Amazon s'enflamme dans une explosion ardente pendant la chaleur estivale de Houston

Des images de drones ont montré des pompiers semblant lutter pour éteindre l'incendie.

Le spectacle Black Panther de Marvel sera le spectacle d'animation le plus crucial à ce jour

Le spectacle Black Panther de Marvel sera le spectacle d'animation le plus crucial à ce jour

Eyes of Wakanda est directement lié au MCU, ainsi que des mises à jour sur X-Men '97, What If..., Daredevil, et plus encore.

Anna Wintour quitte son poste de rédactrice en chef de Vogue après 37 ans — et elle recrute !

Anna Wintour quitte son poste de rédactrice en chef de Vogue après 37 ans — et elle recrute !

La rédactrice en chef de longue date, qui a rejoint Vogue américain en 1988, a annoncé la nouvelle lors d'une réunion du personnel le jeudi 26 juin au matin.

Le pape François décède à 88 ans des suites de problèmes de santé.

Le pape François décède à 88 ans des suites de problèmes de santé.

Le pape François, chef de l'Église catholique et chef spirituel des quelque 1,3 milliard de catholiques à travers le monde, est décédé. Il avait 88 ans.

L'histoire de rencontres d'Ava Gardner : retour sur les mariages et les romances de l'icône hollywoodienne

L'histoire de rencontres d'Ava Gardner : retour sur les mariages et les romances de l'icône hollywoodienne

Ava Gardner a été mariée à Mickey Rooney et Frank Sintra, et a fréquenté plusieurs autres stars d'Hollywood. Voici un aperçu de l'histoire amoureuse d'Ava Gardner.

Qui est la femme de John Cleese ? Tout sur Jennifer Wade

Qui est la femme de John Cleese ? Tout sur Jennifer Wade

John Cleese a épousé sa femme, Jennifer Wade, en 2012. Voici tout ce qu'il faut savoir sur la femme de John Cleese, Jennifer Wade.

les pronoms font super peur

Ça me frappe tout à coup, comme c'est si souvent le cas C'est à nouveau le milieu du chemin <Non, pas celui du Pacifique, toi marron, celui du carnaval> Chaque gros titre fort… ..

3 façons éprouvées d'améliorer vos compétences en écriture

Les avantages de l'écriture et les stratégies pour vous aider à le faire

3 façons éprouvées d'améliorer vos compétences en écriture

En 2022, avec la sortie de GPT-3, la compétence en écriture semble devenir moins importante. Avec l'IA, les personnes ayant une mauvaise écriture peuvent également générer du personnel de qualité.

L'érosion lente : dévoiler les façons dont les gens perdent leur carrière

L'érosion lente&nbsp;: dévoiler les façons dont les gens perdent leur carrière

Dans le monde rapide et compétitif d'aujourd'hui, la carrière d'une personne joue un rôle important dans la croissance personnelle, la stabilité financière et la satisfaction globale de la vie. Cependant, de nombreuses personnes se retrouvent prises dans un cycle incessant de stagnation et d'insatisfaction, dépérissant progressivement dans leur vie professionnelle.

Qu'est-ce qui rend un podcast influent ?

Qu'est-ce qui rend un podcast influent&nbsp;?

La semaine dernière, j'ai remarqué un communiqué de presse, envoyé via PressGazette (un site Web d'information britannique). L'article annonçait qu'Acast, la société d'hébergement et de publicité de podcasts de Scandi, dirigerait un consortium d'éditeurs "probablement les plus influents" du podcasting.

Language