Как устранить ошибку Apollo 401 при доступе к DatoCMS - PullRequest
0 голосов
/ 11 декабря 2018

Я следовал этому руководству:

https://medium.com/@marcmintel/quickly-develop-static-websites-with-vuejs-a-headless-cms-and-graphql-bf64e75910d6

, но когда я запускаю npm run dev, я получаю ошибку 401 на своем локальном хосте: 3000

, это мой nuxt.config.js

module.exports = {
  /*
  ** Headers of the page
  */
  head: {
    title: 'hello-world',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: 'Nuxt.js project' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress bar color
  */
  loading: { color: '#3B8070' },
  /*
  ** Build configuration
  */
  build: {
    /*
    ** Run ESLint on save
    */
    extend (config, { isDev, isClient }) {
      if (isDev && isClient) {
        config.module.rules.push({
          enforce: 'pre',
          test: /\.(js|vue)$/,
          loader: 'eslint-loader',
          exclude: /(node_modules)/
        })
      }
    }
  },
  modules: [
    '@nuxtjs/apollo',
  ],
  apollo: {
    clientConfigs: {
      default: {
        httpEndpoint: 'https://graphql.datocms.com',
        getAuth: () => 'Bearer XXXXXXXXXXXXX' //my apikey
      }
    }
  }
}

И это файл VUE, выполняющий запрос.В данный момент я ничего не отображаю на странице, но все равно получаю сообщение об ошибке.

<template>
    <div>
        All blog posts

    </div>
</template>

<script>
import gql from 'graphql-tag'

export default {
    apollo: {
        allPosts: gql`{
            allPosts{
                title,
                text,
                slug
            }
        }`
    }
}
</script>

Тип данных записи правильно определен в DatoCMS, я протестировал его с помощью API Explorer

1 Ответ

0 голосов
/ 11 декабря 2018

нашел решение в комментариях к статье:

Вам нужно поместить свою аутентификацию в отдельный файл, подобный этому:

~/apollo/config.js
export default function(context){
 return {
 httpEndpoint: ‘https://graphql.datocms.com'
 getAuth:() => ‘my-token’ //Bearer is added by default
 }
}

Затем в nuxt.config.js apollo:

{

clientConfigs: {
 default: ‘~/apollo/config.js’
 }

}
...