如何使用 apollo graphql 处理授权标头?

Posted

技术标签:

【中文标题】如何使用 apollo graphql 处理授权标头?【英文标题】:How to handle authorization header with apollo graphql? 【发布时间】:2020-02-22 21:26:42 【问题描述】:

Apollo graphql 请求遵循接受 http 标头的初始化函数。 我想将身份验证令牌附加到授权标头。

用户可以登录/注销并切换帐户。 我是否应该在任何身份验证更改时使用令牌标头执行 init 函数? 还是有更好的办法?

【问题讨论】:

【参考方案1】:

你可以做这样的功能

const createApolloClient = (authToken) => 
  return new ApolloClient(
    link: new HttpLink(
      uri: 'your url',
      headers: 
        Authorization: `Bearer $authToken`
      
    ),
    cache: new InMemoryCache(),
  );
 ;

然后这样称呼它

var idToken = "abc" //fetch and store your token here   
  const client = createApolloClient(idToken);
   return (
    <ApolloProvider client=client>
       <div>
       </div>
    </ApolloProvider>

【讨论】:

如何在运行时删除授权标头

以上是关于如何使用 apollo graphql 处理授权标头?的主要内容,如果未能解决你的问题,请参考以下文章

基于角色的授权 Django/Graphql/Apollo/Vue

前端的用户角色/权限 - React / GraphQL / Apollo Client

如何使用 React-Apollo 处理 GraphQL 错误?

如何调试 nuxt-apollo 服务器端 graphql 请求

如何使用 Apollo Server 2.0 GraphQL 将模式指令中的信息作为返回的数据包含在内?

如何使用 apollo 客户端在 graphql 的角度处理错误?