0

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

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

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

目前,我已经设法使用 Passport 和 JWT 对 API 的请求进行身份验证,这对于查询 API 来说很好,登录时我在用户的 cookie 存储中存储了一个具有权限的 JWT(它是静态页面而不是 SPA 所以我无法访问本地/会话存储)。

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

任何帮助将不胜感激,谢谢。

4

1 回答 1

0

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

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

于 2017-05-10T20:21:40.137 回答