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

How retrieve user's role with Strapi?

我想使用 strapi 检索与特定用户相关联的角色,但我不能't.I 尝试了此查询但仍未获得该角色。

谁能帮帮我?

谢谢

我的项目遇到了同样的问题。

第一个解决方案: 实际上有一个端点“api/users/me” 你可以在这里看到更多: https://forum.strapi.io/t/is-it-possible-to-know-user-role-on-authentication/14221 它会 return 像这样:

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

请求的 header 必须包含:

"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。

并让令牌在设置 > 角色 > user-permission >用户>我

中访问我的数据

你会得到回应。

我的代码是这样的 我正在使用反应,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"}}}

最终没有解决方案,因为填充不适用于 user-permission。但是我在 post 中找到了替代解决方案:

https://github.com/strapi/strapi/issues/11957