Nuxt Auth - данные пользователя не установлены - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь выполнить вход через модуль nuxt-auth.В ответ я получаю токен, а затем пользовательские данные доставляются.Однако this.$Auth.loggedIn равно false, а this.$Auth.user равно undefined.Я боролся в течение 3 дней и не могу получить дальше.Надеюсь, что кто-нибудь может мне помочь.

логин

await this.$auth.login({
    data: {
        email: this.email,
        password: this.password
    }
}).then(() => {
    this.$router.push('/dashboard')
}).catch(err => {
    this.snackbar.show = true;
})

nuxt.config.js

auth: {
    strategies: {
        local: {
            endpoints: {
                login: {
                    url: '/auth/login',
                    method: 'post',
                    propertyName: 'access_token'
                },
                logout: {
                    url: '/auth/logout',
                    method: 'post'
                },
                user: {
                    url: '/auth/me',
                    method: 'post'
                },
                tokenRequired: true
            }
        }
    }
}

ответ логин

{
"access_token": "xxxxxxxxxxxxx.eyJpc3MiOiJodHRwczpcL1wvYXBpLmFwcHJlexxxxxxxcxXRoXC9sb2dpbiIsImlhdCI6MTUzODI5NTczMywiZXhwIjoxNTM4Mjk5MzMzLCJuYmYiOjE1MzgyOTU3MzMsImp0aSI6ImdtWWVyZTViQjk1cU5BRG8iLCJzdWIiOjIsInBydiI6IjYwODM2NzQ0MzQ4ZDQzMTk4NzE4N2ZjMWM2YzIzMjYxMDcyMWE5ZjAifQ.JhOiwIg7StzZR71aqYyI9rJpPXVclmddzPSIwqCIUN4",
"token_type": "bearer",
"expires_in": 3600
}

ответ пользователя

{
    "id": 2,
    "name": "Dominik Dummy",
    "email": "dummy@andreas-pabst.de",
    "created_at": {
        "date": "2018-09-28 09:11:31.000000",
        "timezone_type": 3,
        "timezone": "UTC"
    },
    "updated_at": {
        "date": "2018-09-28 09:11:31.000000",
        "timezone_type": 3,
        "timezone": "UTC"
    },
    "self": "https:\/\/api.apprex.de\/api\/users\/2"
}

enter image description here

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Хорошо, после долгой попытки, я наконец решил это.Проблема заключалась в том, что для auth.fetchUser() требуется свойство user в ответе пользователя, которого нет в моем ответе пользователя.Я установил для свойства propertyName значение false в nuxt.config.js, и теперь оно работает

* nuxt.config.js

auth: {
strategies: {
    local: {
        endpoints: {
            login: {
                url: '/auth/login',
                method: 'post',
                propertyName: 'access_token'
            },
            logout: {
                url: '/auth/logout',
                method: 'post'
            },
            user: {
                url: '/auth/me',
                method: 'post',
                propertyName: false // <--- Default "user"
            }
        }
    }
}
}

В настоящее время я не уверен, еслиэто неисправность в модуле

0 голосов
/ 30 сентября 2018

Вы должны позвонить this.$auth.fetchUser() для заполнения user данных и loggedIn в auth магазине Документах

...