gpt4 book ai didi

gun - 使用 gundb 进行 JWT 身份验证

转载 作者:行者123 更新时间:2023-12-01 15:03:33 24 4
gpt4 key购买 nike

我可以使用 JWT使用 gundb 进行身份验证?如果是这样,它会大大减慢我的同步速度吗?我打算尝试使用教程 here 进行测试。但想看看是否有任何我应该注意的“陷阱”。

最佳答案

API 已更改为使用中间件系统。将发布 SEA(安全、加密、授权)框架来处理此类问题。但是,您可以通过在服务器上执行以下操作来创建自己的:

Gun.on('opt', function(ctx){
if(ctx.once){ return }
ctx.on('in', function(msg){
var to = this.to;
// process message.
to.next(msg); // pass to next middleware
});
});

注册 in通过 opt 监听钩子(Hook)让这个中间件成为第一个(甚至在枪芯之前),这样你就可以过滤所有输入并在必要时拒绝它们(通过不调用 to.next(msg) )。

同样,要在客户端上添加标题,您需要注册 out监听器(类似于我们为 in 所做的)并修改传出消息以具有 msg.headers = {token: data}然后通过执行 to.next(msg) 将其传递给下一个中间件层(可能是 websocket/传输钩子(Hook))也是。随着它的稳定,更多的文档将会出现。

老答案:

一个很晚的答案,对不起,这个问题没有尽快解决:

默认的 websocket/ajax 适配器允许您更新 headers在每条网络消息上传递的属性:
gun.opt({
headers: { token: JWT },
});

然后在服务器上,您可以根据 token 拦截和拒绝/授权请求:
gun.wsp(server, function(req, res, next){
if('get' === req.method){
return next(req, res);
}
if('put' === req.method){
return res({body: {err: "Permission denied!"}});
}
});

上面的示例拒绝所有写入并授权所有读取,但您可以用自己的规则替换此逻辑。

关于gun - 使用 gundb 进行 JWT 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38598391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com