在构建自定义身份验证策略时,我使用创建
钩子在需要时创建我的用户。
一切都很顺利,包括我的钩子:
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“登录”
知道我为什么会有这样的问题吗?
问候
我不得不用
return { kuid: createdUser.result._id };
而不是
return { kuid: createdUser._id };
因为kuzzle正在包装创建的用户内容