如何使用 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 中找到了替代解决方案:
我想使用 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 中找到了替代解决方案: