如何在来自客户端的 graphql 查询中添加 hmac?

Posted

技术标签:

【中文标题】如何在来自客户端的 graphql 查询中添加 hmac?【英文标题】:How to add hmac in grapqhl queries from client? 【发布时间】:2019-07-26 10:59:20 【问题描述】:

我们在 React Native 项目中使用 apolloclient,谁能指导我们如何在使用它进行的查询中添加 hmac?

【问题讨论】:

【参考方案1】:

希望对你有帮助

import ApolloClient,  gql  from 'apollo-boost';
import  InMemoryCache  from 'apollo-cache-inmemory';
import  print  from 'graphql/language/printer';

const baseURL = 'http://localhost:3000/';
const cache = new InMemoryCache(
    addTypename: false
);

const apolloClient = new ApolloClient(
    uri: baseURL,
    cache,
    request: (operation) => 
        const  query, variables, operationName  = operation;
        const payload = 
            variables,
            operationName,
            query: print(query)
        
        console.log(payload)
        // custom headers
        const headers = 
            'X-API-KEY': '332dace0-e629-48bf-b664-d550ebfc828c',
            'X-APP-ID': '52557818-b027-43a8-bf45-fb87f98cd96e',
            'content-type': 'application/xjson',
            'Authorization': token ? `Bearer $token` : '',
        
        console.log(headers)
        const token = ''; // create HMAC here
        operation.setContext(
            headers: 
                ...headers,
            
        )
    
);

【讨论】:

以上是关于如何在来自客户端的 graphql 查询中添加 hmac?的主要内容,如果未能解决你的问题,请参考以下文章

了解 GraphQL / Sangria-Graphql 中服务器端的特定字段

如何修复来自 Apollo 客户端的格式错误的身份验证标头错误

graphql-java 错误数据(如扩展)被填充到客户端的“消息”字段中

Apollo GraphQL - 如何将 RxJS 主题用作 Apollo 客户端的变量?

带有 GraphQL Apollo 客户端的订阅组件

客户端 Typescript 应用程序和 GraphQL 后端的一般工作流程是啥