繁体   English   中英

是否可以将服务注入 apollo-client 的中间件?

[英]Is it possible to inject a service into apollo-client's middleware?

是否可以将服务注入 apollo-client 的中间件? 有阿波罗模块。 https://www.npmjs.com/package/apollo-angular在文档中有一个如何实现身份验证的建议。 通信是使用 localStorage 完成的。 http://dev.apollodata.com/angular2/auth.html这不是 Angular2 的方式。 我需要确认。 我一直在寻求解决方案。

我会使用以下两个选项之一:

选项 1:

  1. 拥有管理登录/令牌等的身份验证服务。
  2. 将 Auth 服务注入到您构建 Apollo 的服务中。
  3. 在添加令牌的中间件中,从注入的 Auth 服务中检索令牌。

选项 2:

让构建 Apollo 客户端的服务也管理 Auth 状态。 将其注入您登录的页面以处理身份验证并在之后存储令牌。

我知道它很旧,但为了以防万一,注入被做成了 deps:

    providers: [
        {
          provide: APOLLO_NAMED_OPTIONS,
          deps: [HttpLink, AuthService],
          useFactory: createApollo,
        },
      ],

然后您只需在createApollo(httpLink: HttpLink, authService: AuthService)工厂函数中添加一个参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM