【问题标题】:Custom Kong plugin in Lua to handle JWTLua 中用于处理 JWT 的自定义 Kong 插件
【发布时间】:2019-02-28 18:26:30
【问题描述】:

我正在从头学习 Lua,正在考虑创建一个像这样工作的插件:

用例 1: 网站或 React 应用程序向 kong 发送请求,请求头中没有 UserId,也没有 JWT。 Kong 将请求发送到预期的微服务(访客模式)。

用例 2: 网站或 React 应用程序向 kong 发送请求,请求头中带有 UserId。 如果没有 JWT,插件会将请求重定向到创建 JWT 并重定向回 Kong 的网页,Kong 进而将请求发送到使用 JWT 的预期微服务。

用例 3: 网站或 React 应用程序向 kong 发送请求,请求头中带有 UserId 和 JWT。 Kong 将请求发送到使用 JWT 的预期微服务。

我希望我有某种意义。 这可能吗?是难还是容易?是否已经有一些解决方案?如果没有,我将非常感谢一些关于我应该如何去做的一般性指示。我一直在编程,但从未接触过 Lua ^^。

谢谢

【问题讨论】:

  • 嘿!您可能想在 Kong Nation 上发布此内容:discuss.konghq.com
  • 谢谢,是的,我确实在那里发帖。没有回应:/

标签: plugins lua jwt kong


【解决方案1】:

在您的插件上,您将实现您的访问逻辑, 在配置上定义标题名称以检索您的值和 url

检查值是否为零

function plugin:access(config)
  plugin.super.access(self)
  val = kong.request.get_header(config.headerId)
  jwt = kong.request.get_header(config.headerJwt)
  if val == nil and jwt == nil then -- no ID no JWT guest mode
    return
  end
  if jwt == nil then --case 2 redirect
    kong.response.set_header("Location", config.url)
    return kong.response.exit(302, config.url)
  end

【讨论】:

    猜你喜欢
    • 2021-09-12
    • 2023-03-23
    • 2018-10-27
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    相关资源
    最近更新 更多