首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过GraphQL应用编程接口的新(ngx-admin)身份验证流

通过GraphQL应用编程接口的新(ngx-admin)身份验证流
EN

Stack Overflow用户
提问于 2019-02-01 01:04:40
回答 2查看 375关注 0票数 0

如何在ngx-admin/ GraphQL应用程序中通过Nebular进行身份验证?

我发现可用的AuthStrategy类是有限的,并且没有直接的方法来改变它们的行为。最接近的是NbPasswordAuthStrategy,它做一个超文本传输协议请求,但是我还没有想出如何在GraphQL应用程序接口中使用它。

EN

回答 2

Stack Overflow用户

发布于 2019-02-06 14:05:33

目前,无法通过GraphQL进行开箱即用的身份验证。为了解决这个问题,你需要创建一个像NbPasswordAuthStrategy这样的新策略,但是你的新策略将使用GraphQL客户端而不是感叹HttpClient发出请求。

票数 0
EN

Stack Overflow用户

发布于 2019-02-07 21:02:40

作为通过GraphQL应用程序接口进行身份验证的一种变通方法,我对NbLoginComponent进行了子类化并覆盖了它的login()方法,将适当的GraphQL请求有效负载传递给NbAuthService.authenticate(),例如:

代码语言:javascript
运行
复制
  login(): void {
    this.errors = []
    this.messages = []
    this.submitted = true

    const data = {
      variables: this.user,
      query: 'mutation($username: String!, $password: String!) { login(username: $username, password: $password) { token } }',
    }
    this.service.authenticate(this.strategy, data).subscribe((result: NbAuthResult) => {
      this.submitted = false

      if (result.isSuccess()) {
        this.messages = result.getMessages()
      } else {
        this.errors = result.getErrors()
      }

      const redirect = result.getRedirect()
      if (redirect) {
        setTimeout(() => {
          return this.router.navigateByUrl(redirect)
        }, this.redirectDelay)
      }
      this.cd.detectChanges()
    })
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54465752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档