仅给定 <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;
}
无论如何,这是一个有趣的功能,我们将在下一次产品研讨会上讨论它。
我会相应地更新这个答案。
我正在使用 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;
}
无论如何,这是一个有趣的功能,我们将在下一次产品研讨会上讨论它。
我会相应地更新这个答案。