gpt4 book ai didi

node.js - 如何为授权用户验证每个 API?

转载 作者:IT王子 更新时间:2023-10-29 06:16:26 25 4
gpt4 key购买 nike

我想为每个 api 调用授权用户。例如:app.post('/user', isAuth('user.write'), controller);

上面的api需要user.write角色,那如何判断用户是否有这个角色呢? isAuth 函数验证该用户。

按照我的说法,我们可以在登录到 redis 时保存所有用户角色,并在每次 api 调用中从 redis 获取它。

但是roles多了1500,不会很重吗?或者我应该检查每个 api 的数据库?

或者任何其他更好的方法,以便我可以轻松地为用户验证每个 api?

最佳答案

您可以利用 JWT tokens .

然后,您的 API 会向具有角色的用户颁发 JWT token 。

然后用户为每个请求提供此 token ,您不必调用 redis,因为您只需解码 JWT token 并从那里检查角色。

JWT token 由服务器签名,客户端无法修改,因此您知道角色是服务器实际提供的角色。

this article 中阅读有关 JWT 安全性的更多信息

在 Node 中使用 JWT token 的流行库是 node-jsonwebtoken在 GitHub 上有超过 10000 颗星。

关于node.js - 如何为授权用户验证每个 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55741793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com