实现JWT实现用户访问控制

时间:2016-10-27 08:39:47

标签: node.js jwt loopbackjs

我们正在使用Loopback来编写我们的NodeJs API。

现在我们正在寻找一种定义并实现用户访问控制系统的方法,即我们将有10个子类型的管理员用户。

每个子类型都能看到一些动作,即每个子类型用户都可以访问某些端点,我们将手动定义这些端点。

现在要实现这个,我们得到了JWT,这似乎与我们想要的完全一致。它将以json格式存储所有角色和角色权限(api端点),我们将在jwt中编码,然后获取生成的访问令牌,我们稍后可以解码以检查有效性。

所以,流程应该是: -

a)任何用户登录,检查其在服务器端的角色,然后通过编码其权限来创建访问令牌。

b)下次用户发送此访问令牌时,在服务器端解码,获取用户可访问的内容,然后转发他或根据权限列表和当前请求的api端点给他错误。

因此可以在实际进入api端点之前检查权限。 (比如在Loopback中的server.js中查看)

由于

1 个答案:

答案 0 :(得分:0)

是的,除非您使用加密的JWT,否则JWT中的JSON信息可在客户端中访问。它只是base64编码。但是,由于JWT和JavaScript代码都可以更改,因此您无法信任客户端上JWT中的信息。但它存在GUI和其他非安全需求。