gpt4 book ai didi

mysql - 如何改变 Node js 中的授权(权限)级别

转载 作者:行者123 更新时间:2023-11-29 18:43:36 24 4
gpt4 key购买 nike

我正在创建一个基本的商业网络应用程序,它应该有两个级别的授权。不过,我不仅仅想保护 API 端点。我希望不同级别的用户在同一网址上看到不同的页面。例如,管理员在主页上看到两个按钮,而销售代表只能看到一个按钮,因为他们不应该被允许访问第二个按钮后面的内容。

我想做的是在我的 MySQL 用户表中创建一个“admin” bool 值。用户登录后,该字段的值应以某种方式保留下来。因此,如果我是管理员并登录,类似 session 之类的内容将携带我是管理员的信息,允许我在 AngularJS 组件中检查该信息,从而加载正确的 templateUrl。

我的组件顶部会有类似这样的内容:

var tempUrl
if (user.admin) tempUrl = 'home-page/reports.template.html'
else tempUrl = 'home-page/reports-short.template.html'

angular.
module('reports').
component('reports', {
templateUrl: tempUrl, ...

我已经使用 JWT 作为我自己的身份验证方案的一部分来保护我的 API 端点,并且我想继续为每个登录的用户分配一个 JWT,以保护我的所有 API 端点。

我不在乎我是否违反了 REST 的任何原则,我只需要一种方法让客户端保留我稍后可以在我的 AngularJS 组件中检查的信息。

最佳答案

在后端,您可以有一个表将每个用户 ID 映射到一个 Angular 色。如果您确定只有两个 Angular 色,甚至可以使用 bool 列,例如 isAdmin

所以你的用户表看起来像

UserId | isAdmin| other properties
1 true Xyz

此外,在每次 API 调用时,您都应该像进行身份验证一样进行授权。

根据授权,响应会有所不同,这将有助于以不同的方式呈现组件。

我也会严格要求将整个授权部分放在后端,而不是在前端进行

关于mysql - 如何改变 Node js 中的授权(权限)级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44768326/

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