仅给定 <kuid> 和该用户的 <jwt>,我如何验证 kuzzle 数据库中是否存在该用户?

How can I validate a user exists in the kuzzle database given only <kuid> and a <jwt> of that user?

我正在使用 kuzzle (2.6) 作为我的应用程序的后端。我想加密应用程序用户存储到 Kuzzle 的数据,并与数据库分开组织加密密钥。密钥持有实体(简称keyStore)应该只将密钥提供给真正在数据库中注册的用户,而不能访问用户数据本身。 所以我试图从应用程序传递,当用户登录时, <kuid> 连同相应的 <jwt> 获得,例如通过 kuzzle.auth.login('local', {username: <username>, password: <password>}) 通过 https 到 keyStore。 keyStore 应该将信息发送到 Kuzzle 数据库,Kuzzle 插件可以在其中验证用户是否存在。如果 Kuzzle 向 keyStore 确认用户的身份,keyStore 将向用户分发一个密钥,以便用户可以 encrypt/decrypt 它的数据。

简而言之:

有什么方法可以让插件验证给定的 <jwt> 和给定的 <kuid> 是否属于同一用户? <username><password> 都不适用于插件。

这里是 Kuzzle 核心开发人员。

现在我们没有 public API 来让用户链接到身份验证令牌。

您仍然可以使用 Kuzzle 使用的 auth:checkToken API action to verify the token validity and the jsonwebtoken 包从令牌中检索用户 kuid

const { valid } = await app.sdk.auth.checkToken(token);

if (valid) {
  const kuid = require('jsonwebtoken').decode(token)._id;
}

无论如何,这是一个有趣的功能,我们将在下一次产品研讨会上讨论它。

我会相应地更新这个答案。