我想使用带有羽毛的简单但自定义的身份验证例程,但无法理解如何实现它。
要求:每个客户端连接(WebSocket或REST(都必须提供一个会话令牌(我以其他方式建立并保存为cookie(。服务器中间件验证此会话令牌(反对服务(,添加一个用户对象,或者否则将连接删除。
我是否可以纠正这是无法实现feathers-authenticate
的?官方的身份验证文档以JWT为中心,没有提及任何不依赖护照的方法。
可能使用应用钩,例如一个之前的应用程序级挂钩。但这仍然允许用户建立一个,例如WebSocket连接,因为身份验证仅在服务级别上,对吗?我不认为这是理想的。我希望我的身份验证能够在建立连接(Websocket,或HTTP休息(时运行,并在失败时落在那里。
我可以用羽毛吗?
我通过在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);
}
});
}
)
);