我想使用带有羽毛的简单但自定义的身份验证例程,但却无法理解如何实现它。
要求:每个客户端连接(websocket或REST)都必须提供会话令牌(我通过其他方式建立并将其保存为cookie)。服务器中间件验证此会话令牌(针对服务),如果成功则添加用户对象,否则丢弃连接。
我是否认为无法实施feathers-authenticate
?官方认证文档以JWT为中心,并未提及任何不依赖护照的方法。
可以使用app hook,例如一个应用程序之前的钩子。但这仍然允许用户建立,例如, websocket连接,因为身份验证只在服务级别上,对吧? 我不认为这是理想的。我希望我的身份验证在建立连接(websocket或REST for REST)时运行,并在不成功时直接放在那里。
我可以用羽毛做这件事吗?
答案 0 :(得分:0)
我通过向primus连接添加身份验证来解决这个问题:
feathersApp.configure(
primus(
{
transformer: "websockets"
},
function(primus) {
primus.use("cookies", cookieParser, 1);
primus.authorize(async (req, done) => {
try {
done(await authenticateRequest(req));
} catch (err) {
done(err);
}
});
}
)
);