Как получить access_token из модуля аутентификации (nuxtjs/auth-next) в машинописном тексте nuxtjs?

Я пробовал использовать this. $ Auth. $ State.accessToken и this. $ Route.query.token для получения токена, но они не включают в себя access_token. Также пользователь успешно вошел в систему, выбросьте это. $ Auth.loginWith('laravelPassportPassword') Auth .

Затем я попытался получить токен с помощью этого метода. $ Auth.strategy.token.get(). Он показывает следующую ошибку:

      TS2339:Property 'strategy' does not exist on type 'Auth<any>'.
           })
               .then(() => {
               console.log({ token: this.$auth.strategy.token.get() })
                                               ^^^^^^^^   
               this.$router.push('/')
           })

Код следующий.

nuxt.config.ts:

        auth: {
redirect: {
  home: '/',
},
strategies: {
  laravelPassportPasswordGrant: {
    name: 'laravelPassportPassword',
    provider: 'laravel/passport',
    url: 'http://localhost:8000',
    endpoints: {
      logout: '/api/v1/logout',
      user: {
        url: '/api/v1/user',
      },
    },
    clientId: process.env.PASSPORT_CLIENT_ID,
    clientSecret: process.env.PASSPORT_CLIENT_SECRET,
    grantType: 'password',
  },
},

},

login.vue:

      import { Vue, Component } from 'vue-property-decorator'
import PageHeader from '~/components/shared/page-header.vue'


export default class Page extends Vue {
username: string = ''
email: string = ''
password: string = ''
confirmPassword: string = ''

private async login (): Promise<void> {
    try {
        const recaptchaToken = await this.$recaptcha.getResponse()
        
        if (recaptchaToken) {
            await this.$auth.loginWith('laravelPassportPassword', {
                data: {
                    username: this.username,
                    password: this.password,
                    captchaToken: recaptchaToken
                }
            })
                .then(() => {

                    console.log({ token: this.$auth.strategy.token.get() })

                    this.$router.push('/')
                })

        }
        await this.$recaptcha.reset()

    } catch (e) {
        console.log(e)

    }
}

}

Также я вижу ссылку ниже:

https://auth.nuxtjs.org/api/tokens

Как я могу получить access_token?

1 ответ

Наконец, я получил access_token с помощью универсального метода хранения:

       this.$auth.$storage.getUniversal('_token.laravelPassportPassword')

Я хотел бы использовать некоторые другие методы токена, которые видели в документации nuxt-auth, но, похоже, объект токена не существует.

Другие вопросы по тегам