Search code examples
node.jsfeathersjs

FeathersJS authentication deactivate user


I am using FeathersJS and been happy with authentication it provides. I this case it is local JWT. A client requested user management with an ability to disable some. There is field isDisabled in Users model, but it's hard to figure out where the check should be performed and how to set it up.

"@feathersjs/feathers": "^3.0.2", "@feathersjs/authentication": "^2.1.0", "@feathersjs/authentication-jwt": "^1.0.1", "@feathersjs/authentication-local": "^1.0.2",


Solution

  • It depends where you want to check. You can either customize the JWT verifier or create a hook on the users service for the get method:

    app.service('users').hooks({
      after: {
        get(context) {
          const user = context.result;
    
          if(user.isDisabled) {
            throw new Error('This user has been disabled');
          }
        }
      }
    });