gpt4 book ai didi

javascript - 使用 Graphcool 管理用户 Angular 色

转载 作者:行者123 更新时间:2023-11-29 20:59:33 25 4
gpt4 key购买 nike

我将模板 graphcool/templates/auth/email-password 与 Graphcool 一起使用,我想添加管理用户 Angular 色的功能。

这是我的定义模式:

type User @model {
id: ID! @isUnique
createdAt: DateTime!
updatedAt: DateTime!
email: String! @isUnique
password: String!
role: UserRole!
}

enum UserRole {
EDITOR,
MODERATOR,
ADMIN
}

我已经收到查询中的 Angular 色并将其保存在本地存储中,但任何人都可以更改它影响前端 UI(如果我们添加权限,我们不应该担心在服务器端)。管理它的最佳/安全方法是什么?

最佳答案

您在使用 Graphcool 框架吗?

如果需要在graphcool.yml中设置权限。我将包括以下内容:

graphcool.yml

- operation: User.create
authenticated: true
query: permissions/User.graphql:adminRole
- operation: User.read
authenticated: true
query: permissions/User.graphql:adminRole
- operation: User.update
authenticated: true
query: permissions/User.graphql:adminRole
- operation: User.delete
authenticated: true
query: permissions/User.graphql:adminRole

- operation: User.read
authenticated: true
query: permissions/User.graphql:user
fields:
- id
- name
- role
- createdAt
- updatedAt
- email
- company
- operation: User.update
authenticated: true
query: permissions/User.graphql:user
fields:
- name
- company

User.graphql

query user($node_id: ID, $user_id: ID!) {
SomeUserExists(filter: {AND: [{id: $user_id}, {id: $node_id}]})
}

query adminRole($user_id: ID!) {
SomeUserExists(filter: {id: $user_id, role: ADMIN})
}

这样用户只能更新他们的名字和公司。然后 ADMIN 用户可以对每个人进行阅读和编辑。只有 ADMIN 用户可以创建或更新新用户。

然后您可能会问如何创建新用户?我会使用 Graphcool 模板中的 FaaS 代码进行电子邮件密码身份验证:

https://github.com/graphcool/templates/tree/master/auth/email-password

signup.ts 文件告诉您新用户如何注册,然后管理员会为您创建一个新用户。在注册函数中,您可以将 UserRole 默认为您想要的任何值。

https://github.com/graphcool/templates/blob/master/auth/email-password/src/signup.ts

关于javascript - 使用 Graphcool 管理用户 Angular 色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47294038/

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