【发布时间】:2021-03-03 04:16:05
【问题描述】:
我需要实现一个函数来检查提供的 New Relic 许可证密钥 在 JavaScript 应用程序中是否有效(如现有或活动的)。
我查看了文档,但找不到 API 端点来检查这一点。
编辑:需要明确的是,我们将没有可用的 API 密钥来访问 API 端点并从 JSON 响应中读取 http 状态 - 虽然这将是一个解决方案,但我们将只有可用的许可证密钥有效性检查。
【问题讨论】:
标签: javascript newrelic
我需要实现一个函数来检查提供的 New Relic 许可证密钥 在 JavaScript 应用程序中是否有效(如现有或活动的)。
我查看了文档,但找不到 API 端点来检查这一点。
编辑:需要明确的是,我们将没有可用的 API 密钥来访问 API 端点并从 JSON 响应中读取 http 状态 - 虽然这将是一个解决方案,但我们将只有可用的许可证密钥有效性检查。
【问题讨论】:
标签: javascript newrelic
只需调用他们的任何端点,如果您的 api 密钥错误,它将以错误消息响应。这样做,他们的所有端点都是许可证密钥检查器。
您将收到类似的 json 响应。
{"error":{"title":"No API key specified"}}
【讨论】:
除了检查它是否为 40 个字符的十六进制字符串外,我不确定您可以做些什么来验证许可证密钥。 Ruby 代理使用这种方法:
# A license key is an arbitrary 40 character string,
# usually looks something like a SHA1 hash
def correct_license_length
key = Agent.config[:license_key]
if key.length == 40
true
else
::NewRelic::Agent.logger.error("Invalid license key: #{key}")
false
end
end
代理不会检查非十六进制字符,但如果您认为有必要,您可以使用此正则表达式:/^[0-9A-F]+$/。
我想大多数情况下密钥无效是由于粘贴作业不完整(字符太少或没有)或附加了一些随机字符(错字)造成的。在这两种情况下,这应该都能很好地覆盖您。
【讨论】:
New Relic 的人讨论后,我们确定目前无法进行此类检查