Rails、Graphql、Apollo-Clientの基本的な設定は動作していますが、レール側に422個の「無効な認証トークン」の問題があります。Rails、Graphql、Apolloクライアントで無効な認証トークン
私のアポロの使用は間違っていますか?
これは、graphql gemとapolloクライアントを搭載したRails 5アプリです。
const csrfToken = document.getElementsByName('csrf-token')[0].content
const client = new ApolloClient({
networkInterface: createNetworkInterface({
uri: '/graphql',
credentials: 'same-origin',
headers: {
'X-CSRF-Token': csrfToken
}
}),
});
client.query({
query: gql`
query Camillo2 {
user {
id
email
created_at
}
}
`,
})
.then(data => console.log(data))
.catch(error => console.error(error));
Railsはログイン:
Started POST "/graphql" for ::1 at 2017-03-10 08:51:58 -0800
Processing by GraphqlController#create as */*
Parameters: {"query"=>"query Camillo2 {\n user {\n id\n email\n created_at\n __typename\n }\n}\n", "operationName"=>"Camillo2", "graphql"=>{"query"=>"query Camillo2 {\n user {\n id\n email\n created_at\n __typename\n }\n}\n", "operationName"=>"Camillo2"}}
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 2ms (ActiveRecord: 0.0ms)
感謝を行います。不思議ですが、最初の引数としてURLを渡すように私のクエリを切り替えることで(あなたの例によると)422エラーが発生しなくなりました。 Apolloはそれが推奨されておらず、上記の私の構文はuriであると言っていますが、 "..."が優先されます! – dnewman