Skip to content

Feedback for “Subscriptions” #2331

Open
@AsaffArieli

Description

@AsaffArieli

Authentication on the subscription topic in the documentation is unclear. I failed to authenticate using the following link over my named client.

const token = 'my_token';

const basic = setContext(() => ({
  headers: {
    Accept: 'charset=utf-8'
  }
}));

const authLink = setContext((operation, context) =>  ({
  headers: {
    Authorization: `Bearer ${token}`,
  },
}));

const splitLink = split(
  ({ query }) => {
    const definition = getMainDefinition(query);
    return (
      definition.kind === Kind.OPERATION_DEFINITION &&
      definition.operation === OperationTypeNode.SUBSCRIPTION
    );
  },
  new WebSocketLink({
    uri: `ws://localhost:5079/graphql`,
    options: {
      reconnect: true,
      connectionParams: () => ({
        authToken: `Bearer ${token}`, // also tried using Authorization:  `Bearer ${token}`,
      }),
    },
  }),
  authLink.concat(inject(HttpLink).create({
    uri: `http://localhost:5079/graphql`,
  })),
);

export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(routes),
    provideHttpClient(withFetch()),
    provideNamedApollo(() => ({
      myNamedClient: {
        link: ApolloLink.from([
          basic,
          splitLink
        ]),
        cache: new InMemoryCache(),
      }
    }))
  ]
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions