web-dev-qa-db-fra.com

@ NUXTJS / Auth Pourquoi Actualiser la page toujours rediriger pour se connecter

Je ne peux pas rafraîchir la page ou ouvrir un nouvel onglet de la page sécurisée après l'actualisation ou un nouvel onglet vous redirigera pour vous connecter à nouveau.

version

Nuxt.js v2.9.1
@nuxtjs/module: 4.8.4

page sécurisée

middleware: ['auth'],

middleware de l'auth-module

page de connexion

middleware: ['guest'],

middleware/invité.js

export default async function({ store, redirect }) {
    // console.log(store.state.auth)
    if (store.state.auth.loggedIn) {
        return redirect('/')
    }
}

console.log (store.state.auth) = {utilisateur: null, journalisé: false, stratégie: "local"}

nuxt.config.js

auth: {
        strategies: {
            local: {
                endpoints: {
                    // register: { url: 'member', method: 'post', propertyName: 'data.accessToken' },
                    login: { url: 'api/authen-admin', method: 'post', propertyName: 'custom' },
                    user: { url: 'api/admin', method: 'get', propertyName: 'custom' },
                    logout: false
                },
                tokenRequired: 'Authorization',
                tokenType: false
            }
        },
        watchLoggedIn: true,
        localStorage: {
            prefix: 'auth.'
        },
        cookie: {
            prefix: 'auth.', // Default token prefix used in building a key for token storage in the browser's localStorage.
            options: {
                path: '/', // Path where the cookie is visible. Default is '/'.
                expires: 5 // Can be used to specify cookie lifetime in Number of days or specific Date. Default is session only.
                    // domain: '', // Domain (and by extension subdomain/s) where the cookie is visible. Default is domain and all subdomains.
                    // secure - false, // Sets whether the cookie requires a secure protocol (https). Default is false, should be set to true if possible.
            }
        },
        redirect: {
            login: '/login',
            logout: '/login',
            home: '/'
        },
        resetOnError: true
}

J'essaie d'utiliser VUEX-PERSIST pour persister le stockage local mais ne fonctionne pas et que la connexion n'est pas redirigée vers la voie à la maison, restez toujours le chemin de connexion.

4
user2956652

Vous définissez propertyName de point d'extrémité utilisateur à 'custom', recevez-vous la réponse avec ce nom de propriété? Lorsque la page rechargée de page, l'authentifie essaiera fetchUser méthode à la mérite du client toujours authentifié, si vous n'avez pas convenu de point de terminaison de l'utilisateur correctement, que l'utilisateur définira NULL, vous pouvez donc rediriger vers la page de connexion, vous pouvez donc vous rediriger Vérifiez ce que l'établissement utilisateur défini par exécuter ce code:

let user = await this.$auth.requestWith(
    'local', null, { url: 'api/admin', method: 'get', propertyName: 'custom' } );
console.log(user);
0
Mohsen