繁体   English   中英

在实时Web应用程序中实现基于事件的授权的最佳方法是什么?

[英]What ist the best way to implement event based authorization in realtime web applications?

我目前正在研究有关在实时Web应用程序中实现基于事件的授权的最佳方法的一些研究。 与基于普通REST调用的应用程序相比,已发布的事件是需要在服务器上进行授权的某种API调用,因为存在不同类型的授权级别。 在当前的REST应用程序中,通常在第一步(令牌验证)中处理授权,然后通过针对调用所需的权限检查用户权限来进行基于调用的调用。 是否还应该在实时Web应用程序中以这种方式完成? 还是在应用程序体系结构方面需要某种思维转变?

当前应用程序中的代码示例(对于实时性要求可能是不好的示例,但是它很好地显示了所需的授权类型):

app.get('/api/profile/email', passport.authenticate('bearer', {
    session: false
}), authorize('user.profile.email.read'), function (req, res) {
    // Do something and respond
});

我期待着你们的宝贵意见!

我完成此操作的一种方法(如果说使用套接字)是在初始登录后使用存储在redis中的令牌或刷新的令牌。 它使用身份验证中间件对令牌进行检查,以确保它可以继续或发送错误。 如果编码正确,则可以传递令牌,将其拉出并使用中间件进行检查。

   io.use(function(socket,next){
       var token = socket.request._query.tokenOfImmortality;
       tokenHandler.verify(token,next); //Function handles checking redis for access
   }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM