2017-12-27 22 views
1

GitHubの新しいGraphQL APIでは、トークンを前のバージョンとして認証する必要があります。では、ヘッダー情報をHttpLink Apollo-Clientの中にどのように追加するのですか?あなたはapollo-link-contextを使用して認証ヘッダーを定義することができGitHub API v4とApolloクライアントの認証

const client = new ApolloClient({ 
    link: new HttpLink({ uri: 'https://api.github.com/graphql' }), 
    cache: new InMemoryCache() 
}); 

答えて

2

、GitHubのAPIのアポロ・クライアントを使用するためのthe header section

をチェック完全な例は次のようになります。

import { ApolloClient } from 'apollo-client'; 
import { HttpLink } from 'apollo-link-http'; 
import { setContext } from 'apollo-link-context'; 
import { InMemoryCache } from 'apollo-cache-inmemory'; 
import gql from 'graphql-tag'; 

const token = "YOUR_ACCESS_TOKEN"; 

const authLink = setContext((_, { headers }) => { 
    return { 
    headers: { 
     ...headers, 
     authorization: token ? `Bearer ${token}` : null, 
    } 
    } 
}); 

const client = new ApolloClient({ 
    link: authLink.concat(new HttpLink({ uri: 'https://api.github.com/graphql' })), 
    cache: new InMemoryCache() 
}); 

client.query({ 
    query: gql` 
    query ViewerQuery { 
     viewer { 
     login 
    } 
    } 
    ` 
}) 
    .then(resp => console.log(resp.data.viewer.login)) 
    .catch(error => console.error(error)); 
関連する問題