✅已解决 | Pipeline中使用delete命令未能删除用户

问题描述

我通过Pipeline增加了一个功能,(1)每次认证前检测用户注册时间,(2)超过一定期限便拒绝登陆并(3)删除该用户。目前,第一步和第二步都没问题,但第三步始终无效,日志里也没有报错。想请教下是哪里出了问题。

Pipeline代码如下:

async function pipe(user, context, callback) {

  const now = Date.parse(new Date());
  const signup = Date.parse(user.createdAt);
  const past = ( now - signup)/86400000;

  if ( past > 0 ) {
  
    return callback(new Error('用户权限到期,如需继续使用,请重新注册!'));
      authing.users.delete(user.id);
  } 
  callback(null, user, context)
}

你应该在 return callback(new Error('用户权限到期,如需继续使用,请重新注册!')); 之前调用 authing.users.delete(user.id);return 之后后面的代码就不会执行了。

之前试过,也不行啊

    async function pipe(user, context, callback) {

      const now = Date.parse(new Date());
      const signup = Date.parse(user.createdAt);
      const past = ( now - signup)/86400000;
     
      // 检测注册时间
      if ( past > 0 ) {
        authing.users.delete(user.id);
        return callback(new Error('用户权限到期,如需继续使用,请重新注册!'));
        
      } 
      callback(null, user, context)
    }

需要加一下 await:

await authing.users.delete(user.id);

否则删除请求未发出,沙箱环境就被销毁了。

谢谢,添加后解决了