1

我有一个 spring 后端,我正在通过类似代理的端点访问我的弹性搜索集群。该请求必须使用 cookie 进行授权。

我目前正在使用支持通过withCredentials标志验证请求的 searchkit。反应式搜索是否有类似的选项,或者是否有任何其他解决方案可以使用 cookie 授权请求?

我可以补充:后端暴露了一个招摇的客户端,它运行在与我的前端客户端不同的域上。该客户端“拥有”cookie,因此我无法从前端客户端读取 cookie

4

2 回答 2

1

您可以使用headersprop inReactiveBase将自定义标头与请求一起传递。链接到文档。由于没有withCredentials,您可以读取 cookie 并设置自定义标头以验证代理中间件的请求。

<ReactiveBase
  ...
  headers={{
      customheader: 'abcxyz'
  }}
>
    <Component1 .. />
    <Component2 .. />
</ReactiveBase>

是一个示例代理服务器,但它在 NodeJS 中

于 2018-08-07T13:51:08.740 回答
1

Okey so it turns out, Reactivesearch uses fetch and fetch wants credentials: 'include' for cookie authentication. This may not be placed in the headers that Reactivesearch supplies and must be placed on the root object for the request.

It's possible to do this by implementing beforeSend on ReactiveBase.

const Base = ({ children }) => {
  const onBeforeSend = props => {
    return {
      ...props,
      credentials: 'include',
    }
  }

  return (
    <ReactiveBase
      app="app-name"
      url="url"
      beforeSend={onBeforeSend}
    >
      {children}
    </ReactiveBase>
  )
}
于 2018-08-08T12:27:47.373 回答