我正在尝试注册用户,我想知道如何将角色设置为管理员。我试过了
user: {
username: "elialber",
email: "falecom@elialber.com.br",
password: "123456789",
role: ???
}
我正在使用 Angular5 而只是 api strapi
我正在尝试注册用户,我想知道如何将角色设置为管理员。我试过了
user: {
username: "elialber",
email: "falecom@elialber.com.br",
password: "123456789",
role: ???
}
我正在使用 Angular5 而只是 api strapi
第 1 步:转到 node_modules/strapi-plugin-users-permissions/controllers/Auth.js 第 2 步:转到第 457 行(在我的代码中) 第 3 步:注释 params.role=role.id; 喜欢 (//params.role = role.id;)
现在你可以像下面这样传递角色 id 1 或 2 或 3
{
"blocked":false,
"confirmed":true,
"username":"aziz",
"email":"musa@binarymarvels.com",
"password":"musa01010",
"role": 2
}
and now I receive a response like:
{
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MzQsImlhdCI6MTYwMjUzMzk0MSwiZXhwIjoxNjA1MTI1OTQxfQ.xM2tmP8PUcwABiW9lmxkjkmcmdmckMB8wlQ1YsBOQI",
"user": {
"id": 34,
"username": "aziz",
"email": "musa@binarymarvels.com",
"provider": "local",
"confirmed": true,
"blocked": false,
"role": {
"id": 2,
"name": "Public",
"description": "Default role given to the unauthenticated user.",
"type": "public"
},
"created_at": "2020-10-12T20:19:01.285Z",
"updated_at": "2020-10-12T20:19:01.299Z"
}
}
在 Strapi 管理员中:
角色和权限 -> 高级设置
将经过身份验证的用户的字段默认角色设置为“管理员”
你可以这样做
user: {
username: "elialber",
email: "falecom@elialber.com.br",
password: "123456789",
role: {
_id: "5afac95f0eabf75b64c6ef92" // role id that your app generate
}}
可以编写一个自定义端点来更新用户角色,并添加一个相应的控制器操作,如下所示:
module.exports = {
updateUserRole: async ctx => {
return await strapi.services.auth.updateUserRole (ctx.request.body.user,
ctx.request.body.roleType);
}
};
更新用户角色的身份验证服务可以在 api/auth/services/Auth.js 中定义如下:
module.exports = {
updateUserRole: async (userid, roleType) => {
const role = await strapi.query('role', 'users-permissions').findOne({ type:roleType }, []);
if ( role ) {
strapi.query('user', 'users-permissions').update({ id: userid }, { role: role.id });
return true;
}
return false;
}
};
在第 261 行前面的 root/plugins/users-permissions/controllers/Auth.js 中添加以下代码
const roleType = params.role || settings.default_role
并更改第 261 行
const role = hasAdmin === false ? root : await strapi.query('role', 'users-permissions').findOne({ type: roleType }, []);
帖子会喜欢
{
"username": "test user",
"email": "qqqqqq@gmail.com",
"password": "qqqqqq",
"role": "boss"
}
boss <--- 从管理面板创建的角色
在strapi v-3.0.0-alpha.25.2上工作