Angular 6 - 身份验证管理员用户和 root 用户

Posted

技术标签:

【中文标题】Angular 6 - 身份验证管理员用户和 root 用户【英文标题】:Angular 6 - Authentication admin user and root user 【发布时间】:2018-12-04 07:28:49 【问题描述】:

我创建了一个 MEAN 堆栈应用程序。我使用 Passport 模块设置了用户身份验证。我关注了这个tutorial。 这可以正常工作。

但是,我想添加管理员用户,并希望得到一些建议。 我想过在我的用户模型中添加一个参数,如下所示:

const userSchema = new Schema(
  _id: 
    type: Schema.Types.ObjectId,
    required: true
  ,
  firstname: 
    type: String,
    required: true
  ,
  lastname: 
    type: String,
    required: true
  ,
  email: 
    type: String,
    unique: true,
    required: true
  ,
  admin: 
    type: boolean,
    unique: true,
    required: true
  ,
  hash: String,
  salt: String
);

这是个好主意还是有更好的方法?

【问题讨论】:

这仅取决于您的应用程序的需求,但这是一个完全有效的解决方案。 【参考方案1】:

是的,可以通过这种方式完成,通常我所看到的是他们有一系列角色。一个用户可能有不同的特权或不止一个。可以是用户 + 管理员,或者其他什么等等。取决于用例。

【讨论】:

【参考方案2】:

您可以这样做,并将其用作 Angular 防护的标准。在设计应用程序的其余部分时,请记住您的后端永远不应该信任您的客户端,因为它很容易被欺骗。只有服务器应该确定哪些角色属于每个经过身份验证的用户,并为您的 API 的每个端点授予正确的权限

【讨论】:

以上是关于Angular 6 - 身份验证管理员用户和 root 用户的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 2/4 应用程序上对用户进行身份验证后的动态角色和权限

带有 HTTP 基本身份验证的 Angular 6 HTTP Get 请求

使用 Windows 身份验证登录 Angular App

带有 Angular 6 的 Asp.Net Core 2.1 中的 Windows 身份验证 - Chrome 连续登录提示

Angular:处理重新加载页面和用户身份验证

Angular 6 JWT 身份验证