如何使用Passport& JWT在客户端进行授权?

时间:2017-05-10 19:38:39

标签: node.js express jwt passport.js express-jwt

我目前正在为朋友的足球队创建自定义CMS。架构如下:

在后端,我有一个与数据库交互的API(mongoDB)。

在前端,我是一个使用模板引擎把手为页面提供服务的快速服务器。

目前,我已经设法使用Passport和JWT验证对API的请求,这对于查询API很方便,登录时我会在用户的cookie存储中存储具有权限的JWT(它& #39;静态页面而不是SPA,因此我无法访问本地/会话存储)。

我的问题是,我正在努力在客户端实现授权以访问管理面板。我应该在客户端解码JWT并读取用户角色,如果管理员页面是用户是管理员,还是应该发送每个请求来访问API的前端管理部分,请提供页面服务。验证检查然后提供文件。

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我认为使用令牌身份验证方法更适合通过XHR发出请求,而不是硬重新加载。您正在采用的方法似乎更适合基于会话的身份验证策略。我会使用本地护照并使用用户名和密码进行身份验证。一旦经过身份验证,用户就会在服务器端存储在会话变量中。您可以检查该角色并重定向服务器端。

如果您坚持使用令牌,可以将其保存在本地存储中,然后在管理面板上安装一个脚本,该脚本首先从本地存储中获取令牌,然后使用令牌向服务器发出GET请求。头。如果令牌有效,则发回数据以填充页面,否则发回错误并从前端重定向。要在检查令牌的有效性时绕过显示空管理面板,您可以在请求完成之前显示加载屏幕。

相关问题