在我正在构建的一个项目中,我有一堆关于express-session和JWT的问题。
我有一个Express API服务器,我想使用某种API密钥来保护它,以确保只有经过授权的应用程序才能访问我的数据。JWT可能会完成这项工作。但是,我还需要对用户进行身份验证,并限制他们使用express-session访问数据的某些部分(例如,基于角色的权限)。
前端服务器将是一个Next.js实例,它将保存并使用用于快速会话的cookies。会话将存储在MongoDB实例中。
我是否可以在同一项目中使用这两种身份验证方法?它会安全吗?有没有更简单的方法呢?如何实现权限?
任何帮助和提示都将不胜感激。
发布于 2019-06-07 08:01:45
JWT和Express-Session都实现了同样的功能。不同之处在于,浏览器不允许通过javascript访问仅限http的cookie。然后,它们都用于相同的目的。
jwt应该与用户的会话相关,因此用户的权限才是最重要的。这些可以在DB中实现并且与用户相关。他是否有这个权限,或者他的角色是否有这个权限是您要放在路由上的中间件。
在使用express-session的情况下,我个人也会采用同样的方法。
https://stackoverflow.com/questions/53758109
复制相似问题