使用strapi注册新用户时如何设置角色?

时间:2018-04-23 16:30:25

标签: strapi

我正在尝试注册用户,我想知道如何设置管理员角色。 我试过了

user: {
  username: "elialber",
  email: "falecom@elialber.com.br",
  password: "123456789",
  role: ???
}

我正在使用Angular5和api strapi

5 个答案:

答案 0 :(得分:1)

在Strapi Admin中:

角色和权限->高级设置

已验证用户的默认角色字段设置为“管理员”

答案 1 :(得分:0)

你可以这样做

user: {  
username: "elialber",   
email: "falecom@elialber.com.br",  
password: "123456789",   
role: {   
_id: "5afac95f0eabf75b64c6ef92" // role id that your app generate     
}}

答案 2 :(得分:0)

https://github.com/strapi/strapi/blob/master/packages/strapi-plugin-users-permissions/controllers/Auth.js#L261

将以下代码添加到第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" 
}

老板<---通过管理面板创建的角色

研究了trapi v-3.0.0-alpha.25.2

答案 3 :(得分:0)

可以编写一个自定义端点来更新用户角色,并添加相应的控制器操作,如下所示:

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;
    }
};

答案 4 :(得分:0)

第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"
    }
}