如何针对Apollo graphql客户端中的特定突变在上下文中传递访问令牌

时间:2020-03-04 18:30:46

标签: apollo react-apollo apollo-client apollo-server

我正在将Microsoft graph API集成到我的应用程序中,因此当前我正在通过MSAL npm模块在客户端获取访问令牌,因此我需要在apollo服务器上访问访问令牌才能访问Microsoft graph API(此访问令牌)仅对于一个解析器才是必需的,对于应用程序授权,我具有为每个解析器检查的不同访问令牌),所以有什么方法可以像我这样尝试突变时添加上下文-

<Mutation mutation={CREATE_MICROSOFT_TEAMS} context={{ microsoftgraphaccesstoken: msalAccessToken }}>我试图在突变中传递上下文,但是它不起作用,是否存在类似的问题,或者我应该在参数中传递令牌,然后在我的阿波罗时将其添加到标题中服务器将要访问Microsoft图形API。

1 个答案:

答案 0 :(得分:0)

有多种方法可以访问令牌服务器端,最简单的方法是将令牌视为突变变量的一部分,因为令牌始终是特定于一个解析器的。

使用突变变量:

// client.js

<Mutation 
  mutation={CREATE_MICROSOFT_TEAMS} 
  variables={{ microsoftgraphaccesstoken: msalAccessToken }}
>
// server.js

function createMsTeamsResolver(source, args, context, info) {
  console.log(args.microsoftgraphaccesstoken);
}

这样,您还可以像往常一样访问任何参数。