【问题标题】:How to use queryString in the nodejs client for fusionauth?如何在nodejs客户端中使用queryString进行fusionauth?
【发布时间】:2019-04-04 14:41:42
【问题描述】:

我正在使用以下代码来获取所有用户。它适用于 Java 客户端,但出现以下错误

{ code: '[invalid]', api_1 | message: 'You must specify either the [ids], [queryString], [email] or [username] property for a GET request.' }

我正在尝试什么

    let requestJSON = {}
    requestJSON.queryString = "*";
    client.searchUsersByQueryString(requestJSON).then(handleResponse).catch(handleResponse);

    function handleResponse (clientResponse) {
        console.log(clientResponse.errorResponse.generalErrors[0]);
    }

同样出于某种原因,它假设这是一个 GET 请求。

我已经尝试过使用 Postman 做同样的事情,但它不起作用。我到处都在使用 FusionAuth 1.5.0。

【问题讨论】:

    标签: fusionauth


    【解决方案1】:

    客户端库使用带有 JSON 正文的 POST 请求来执行搜索。在此处查看POST /api/user/search API 文档https://fusionauth.io/docs/v1/tech/apis/users#search-for-users

    试试这个:

    let requestJSON = {
      search: {
        queryString: "*"
      }
    };
    
    
    client.searchUsersByQueryString(requestJSON).then(handleResponse).catch(handleResponse);
    
    function handleResponse (clientResponse) {
      console.log(clientResponse.errorResponse.generalErrors[0]);
    }
    

    【讨论】:

    • 我不知道我怎么错过了“搜索.____”。真的谢谢。
    • 另外你为什么在 JSON 中添加额外的“搜索”?我真的在考虑 API 设计,但找不到任何理由。
    • 这是我们用于所有 API 的模式,在这种特殊情况下,它可能不太有用。但为了保持一致性,我们将它用于每个 API。
    【解决方案2】:

    就像@robotdan 所说,您必须在search 属性中包含queryString 字段。尽管乍一看可能并不明确,但您可以通过查看请求正文字段来暗示:

    Fusion Auth User API screenshot 正如您在第 3 行中看到的那样,有一个 search.queryString,您应该在其中定义要搜索的字符串,在您的情况下就是所有内容 (*)。此外,如果您想要一个有序列表,请查看包含可用排序字段的第 6 行,并在第 7 行中查看结果的顺序:ascdesc(它没有出现在屏幕截图中,因此请查看在 FusionAuth 官方文档页面)。

    假设您希望所有名称必须包含foo 的用户在他们的任何位置fullName,按用户email 降序排列。你的对象应该是这样的:

    const request = {
      search: {
        queryString: '*foo*',
        sortFields: [{ name: 'email', order: 'desc' }]
      }
    }
    

    注意开头和结尾的*:这些星号告诉搜索引擎foo 可能有前缀和/或后缀(但你不关心它们)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-23
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      相关资源
      最近更新 更多