mysql 如何使用Strapi检索用户角色?

wj8zmpe1  于 2023-01-12  发布在  Mysql
关注(0)|答案(3)|浏览(137)

我想使用strapi检索与特定用户关联的角色,但我不能。我尝试了此查询,但仍然没有得到角色。

有人能帮帮我吗?
谢谢

mspsb9vt

mspsb9vt1#

我的项目也有同样的问题。

"role": {
    "id": "string",
    "name": "string",
    "description": "string",
    "type": "string",
    "permissions": [
      "string"
    ],
    "users": [
      "string"
    ],
    "created_by": "string",
    "updated_by": "string"
  }

请求的报头必须包含:

"Authorization": `Bearer ${token}`

最后的代码看起来像这样:

const userData = async() => {
const response = await fetch('http://localhost:1337/api/users/me', 
headers: {
    authorization: `Bearer ${JsonWebToken}`,
  })
const res = await response.json()
console.log(res)

}

  • 第二个解决方案 * 另一个解决方案是使用GraphQL
Const endPoint = "http://localhost:1337/graphql"

你必须安装graphql虽然.
通过让令牌在设置〉角色〉用户权限〉用户〉我中访问我的数据
您将获得响应。
我的代码如下所示我使用react,graphql-request

import { GraphQLClient, gql } from "graphql-request"
const graphQLClient = new GraphQLClient(endPoint, {
    headers: {
      authorization: `Bearer ${WebToken}`,
    },
  })
  const query = gql`
    {
      me {
        role {
          name
        }
      }
    }
  `

 const data = await graphQLClient.request(query)
console.log(JSON.stringify(data))

结果是

{"me":{"role":{"name":"client"}}}
kiayqfof

kiayqfof2#

最后,没有解决方案,因为populate不适用于用户权限。但我在这篇文章中找到了一个替代解决方案:
https://github.com/strapi/strapi/issues/11957

gzszwxb4

gzszwxb43#

同时,您可以简单地为users-permissions用户填充角色。
这两种方法都有效:
/api/users/:id?populate=role/api/users/me?populate=role
但是,您需要向用户角色授予以下权限:管理面板-〉设置-〉用户和权限-〉角色-〉您的用户角色-〉用户权限-〉角色-〉查找(注意:findOne将不起作用!)

相关问题