提问者:小点点

kuzzle定制策略的问题


在构建自定义身份验证策略时,我使用创建钩子在需要时创建我的用户。

一切都很顺利,包括我的钩子:

    async create(_request: any, credentials: { id: string }, kuid: string) {
      // Create user credential
      const [err] = await to(
        this.ssoRepository.create(
          {
            _id: credentials.id,
            kuid,
          },
          { refresh: "wait_for" },
        ),
      );

      if (err) {
        throw new this.context.errors.InternalError(`Error while creating SSO credentials for user ${kuid}.`);
      }

      return { _id: credentials.id };
    }

然后我用它来消耗

// If user not exists, we create the user
let createdUser: any;
[err, createdUser] = await to(
  this.kuzzle.query({
    action: "createUser",
    body: {
      content: {
        profileIds: ["default"],
        ...ssoUser,
        courses: [],
        favorites: [],
      },
      credentials: {
        SSO: {
          id: ssoUser!.id,
        },
      },
    },
    controller: "security",
    refresh: "wait_for",
  }),
);

if (err) {
  throw new this.context.errors.InternalError(err.message);
}

return { kuid: createdUser._id };

但我有以下错误

代码:0错误名称:“未记录错误”消息:“无法使用策略”SSO“登录”

知道我为什么会有这样的问题吗?

问候


共1个答案

匿名用户

我不得不用

return { kuid: createdUser.result._id };

而不是

return { kuid: createdUser._id };

因为kuzzle正在包装创建的用户内容