Nginx - 为不同的用户在一个URL到另一个URL之间设置cookie

我正在尝试使用openresty构建hortonworks schema-registry。

我们启用了google oauth来验证我们的schema-registry ui。Google oauth会将一个名为"_token"的cookie传递给**_/ui_和除/api**以外的所有后续路径。

这是因为我们可能也想直接访问**_/api_**(没有google身份验证)。

问题是,由于**_/api_被排除在列表之外,我无法将"_token" cookie传递给任何在/api**下的请求。

在我的access_by_lua中,有一个条件,我检查cookie是否存在,如果存在 - 用户已经通过身份验证,然后可以继续操作,如果不存在 - 我们进行其他检查以验证请求,并根据情况将其传递或返回错误信息。

我的问题是,如果我想将cookie从**_/ui_传递到/api**,我该怎么办?

此外,cookie应该仅为特定用户设置,以便我的其他应用程序可以快速通信。

我尝试过的:

我尝试在从**_/ui_路径读取后将全局cookie_token设置为一个静态值。 但这似乎不起作用,因为它对所有请求(甚至是来自应用程序的请求)设置了cookie,并且cookie的值是基于从/ui**收到的第一个_token的静态值。

点赞