- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在管理 Kuzzle javascript SDK 的身份验证 Controller 中的 jwt token 时遇到问题。我是 JS 或 Kuzzle 的完全初学者,对于任何错误的假设,我深表歉意。
我在我的 Express 服务器上使用一个简单的管理员帐户,该帐户有权注册和更新用户,或创建索引/集合。这是到目前为止的设置。
const {Kuzzle, WebSocket} = require('kuzzle-sdk')
const config = require('../config/config')
const kuzzle = new Kuzzle(new WebSocket('localhost'))
// Add a listener to detect connection problems
kuzzle.on('networkError', (error) => console.error("Network Error: " + error))
// start admin session
if (!kuzzle.connected) {
kuzzle.connect()
.then(() => kuzzle.auth.login('local', {username: config.kuzzle, password: config.kuzzle.password}))
.catch((error) => {
console.error(error)
kuzzle.disconnect()
})
}
security.token.invalid
当我期望
security error codes 时出现错误
security.token.expired
.然后,所有后续请求都失败并显示
security.rights.forbidden
ID。
// token not expired
await kuzzle.auth.getCurrentUser()
.then((user) => console.log(user.content)) // { profileIds: [ 'admin' ], _kuzzle_info: {...} }
.catch((err) => console.error(err)) // X
// token just expired
await kuzzle.auth.getCurrentUser()
.then((user) => console.log(user.content)) // X
.catch((err) => console.error(err)) // [KuzzleError: Invalid token.] {status: 401, id: 'security.token.invalid', code: 117506049}
// following user
await kuzzle.auth.getCurrentUser()
.then((user) => console.log(user.content)) // { profileIds: [ 'anonymous' ], name: 'Anonymous' }
.catch((err) => console.error(err)) // X
// any following request (admin does have those permissions)
await kuzzle.index.exists("existing")
.catch((err) => console.error(err)) // [KuzzleError: Insufficient permissions to execute the action "index:exists".] {status: 403, id: 'security.rights.forbidden', code: 117637122}
最佳答案
Kuzzle 开发人员在这里。
我看到您正在使用 Javascript SDK,因此行为与直接使用 API 略有不同。
首先,当您订阅实时通知时,Kuzzle 会定期检查与订阅关联的 token 是否仍然有效。
如果 token 已过期,则 Kuzzle 发送 TokenExpired notification并且不会就此订阅发送任何其他进一步通知。
SDK 收到通知,发出 tokenExpired事件,并将 SDK 实例身份验证 token 设置为 null
因为它不能再使用它了。
这就是为什么您会收到 security.rights.forbidden
在后续调用中出错,因为您没有任何身份验证 token ,因此 Kuzzle 为您提供匿名用户权限。
当您使用过期的身份验证 token 时,您应该收到 security.token.expired
错误。实际上有一个错误所以你只收到security.token.invalid
.
首先回答两个问题:
kuzzle.on('tokenExpired', () => kuzzle.auth.login(...));
kuzzle.jwt = <api-key>
// further request will be authenticated with the API key user
关于javascript - 如何从过期的 Kuzzle token 服务器端恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61669480/
kuzzle.auth.createApiKey 用法的最佳实践是什么? 在应用程序外部调用它以生成 token ,然后将 token 放入环境变量中并在 cade 中使用它 (kuzzle.jwt
我正在使用 Kuzzle 作为我的实时聊天应用程序的后端。当用户在移动聊天应用程序中处于离线状态时,发送推送通知的更好方法是什么? 1。使用自定义插件 Hook // check for every
我正在尝试从管理控制台创建一个枚举字段,但我无法正确实现 我浏览了 Elasticsearch 的文档,但我并不真正了解所有内容。 "ville": { "type": "enum",
使用 kuzzle.collection.create('abc123', 'yellow-taxi', {definition}); 在索引上创建集合。集合已创建,但未应用映射。 这是我使用的代码
使用 kuzzle.collection.create('abc123', 'yellow-taxi', {definition}); 在索引上创建集合。集合已创建,但未应用映射。 这是我使用的代码
我在管理 Kuzzle javascript SDK 的身份验证 Controller 中的 jwt token 时遇到问题。我是 JS 或 Kuzzle 的完全初学者,对于任何错误的假设,我深表歉意
我使用 Kuzzle 作为我的渐进式 Web 应用程序的后端,并且我想做一些文件上传。 据我所知,Kuzzle 不支持服务器端文件存储。 如何从我的应用程序上传图像,然后将其显示给其他用户? 最佳答案
我想在 Kuzzle 堆栈上创建重置密码功能,但我不知道在用户文档中的何处放置额外数据(例如用于重置密码的 token )。 此外,用户不应该能够更改数据本身。 我应该使用 security.upda
我正在使用 Kuzzle 来构建一个简单的类似 slack 的应用程序。我有一个简单的集合,其中包含仅包含其他文档 ID 的文档。 我想从这个集合中查询一个 id 列表,但在响应中遇到了一个空的命中数
我正在尝试扩展 KUZZLE JavaScript SDK,以便调用 kuzzle 服务器上的一些 Controller ,这些 Controller 是通过插件实现的。我正在遵循该指南:add co
我已经集成了 kuzzle在 ReactJS 应用中使用 Kuzzle-SDK 首先一切正常。我使用 kuzzle.auth.login('local', credentials) 登录并将 JWT
我想使用 OAuth 提供程序来验证对我的 kuzzle 实例的请求。 执行此操作的标准或首选方法是什么? 最佳答案 Kuzzle 支持同一用户的多种身份验证策略。这意味着同一用户可以使用用户名/密码
我使用 kuzzle (2.6) 作为我的应用程序的后端。我想加密应用程序用户存储到 Kuzzle 的数据,并将加密 key 与数据库分开组织。 key 持有实体(简称 keyStore)应该只将 k
我是一名优秀的程序员,十分优秀!