我有微服务架构,并且使用Apollo。 所有的微服务都用Node.JS编写。
帐户服务API是微服务之一,它具有两种通用方法:
Accounts API是有状态的,并且会话基于passport
。
另外,我有graphql网关:
const gateway = new ApolloGateway({
serviceList: [
{ name: 'accounts', url: 'http://localhost:3001/graphql' },
{ name: 'products', url: 'http://localhost:3002/graphql' }
]
});
const apolloServer = new ApolloServer({
gateway,
subscriptions: false,
playground:
process.env.NODE_ENV === 'production'
? false
: {
settings: {
'request.credentials': 'include',
},
}
});
在网关方面,我有一个在React中执行mutation login
的网站。但是我不知道身份验证后如何存储凭据。
所以我也有调用mutation login
的表格,但是我需要以某种方式覆盖登录名才能将当前用户设置为上下文并将其传递给产品API。
您能否分享有关如何实现的想法(我如何使用网关在微服务之间共享数据)?