Сохранение пользователя oAuth - Nuxt auth - стратегия на github

Я пытаюсь сохранить пользователя GitHub OAuth, зарегистрированного в базе данных моего пользователя. Я использую модуль аутентификации Nuxt.js для функциональности.

Настройка аутентификации в Nuxt.config.js

auth: {
  strategies: {
    local: {
      token: {
        property: 'data.token',
      },
      user: {
        property: 'data',
      },
      endpoints: {
        login: { url: 'login', method: 'post' },
        user: { url: 'byToken', method: 'get' },
        logout: { url: 'logout', method: 'get' },
      },
    },
    github: {
      clientId: process.env.GITHUB_CLIENT_ID,
      clientSecret: process.env.GITHUB_CLIENT_SECRET,
    },
  },
},

Страница Login.vue

<template>
   <button class="social-icons" @click="githubLogin()">
     Login with Github
   </button>
</template>

<script>
export default {
  methods: {
    async githubLogin() {
      try {
        const response = await this.$authApi.loginWithGithub()
      } catch (err) {
        console.log(err)
      }
    },
  },
}
</script>

Файл плагинов аутентификации

export default function (context, inject) {
  inject('authApi', {
    loginWithGithub,
  })
async function loginWithGithub() {
    try {
      await context.$auth.loginWith('github')
      // Get the required info from the user object set in vuex
      const user = context.$auth.user //This is undefined
      const userInfo = {
        oAuthId: user.id,
        username: user.login,
        name: user.name,
        bio: user.bio,
        email: user.email,
        profilePhoto: user.avatar_url,
        isOAuthUser: true,
      }
      // My api server to store the passed userinfo to db
      const response = await context.$axios.post('/socialRegister', userInfo)
      return response
    } catch (err) {
      setErrorMessage(err)
    }
  }
}

Теперь, когда я нажимаю кнопку входа в систему (Login.vue) с помощью GitHub, модуль успешно устанавливает токен доступа, полученный от GitHub, в локальное хранилище, а пользователя - в состояние. Но, как вы можете видеть в коде (файл плагина auth.js) после loginWith ('github') context.$auth.user не определено. Теперь мой вопрос в том, как я могу получить доступ к информации о пользователе, чтобы я мог переслать эту информацию на свой сервер api для хранения пользователя в БД.


person nash08    schedule 24.05.2021    source источник


Ответы (1)


Раньше я сталкивался с подобной ошибкой.

Заходим tsconfig.json и меняем

{
"strict":false,
}

Если это не решит вашу проблему, сравните ваши tsconfig.json и nuxt-auth оригинальный tsconfig.json

person berkaygurbuz    schedule 25.05.2021
comment
Йо, спасибо, что изучили это. Мой проект - это простое приложение create-nuxt без машинописного текста. Итак, в моем проекте нет tsconfig.json. Я попытался реализовать 'strict: false' в моем nuxt.config.js, но безуспешно. Дайте мне знать, если у вас есть другие предложения. - person nash08; 26.05.2021