在 Auth0 中创建用户时出现有效负载验证错误

Posted

技术标签:

【中文标题】在 Auth0 中创建用户时出现有效负载验证错误【英文标题】:Getting Payload Validation Error while creating User in Auth0 【发布时间】:2021-11-16 01:22:24 【问题描述】:

我在创建 Auth0 用户时收到以下有效负载验证错误:

有效负载验证错误:'其他属性不允许:$type(考虑将它们存储在 app_metadata 或 user_metadata 中。有关详细信息,请参阅 https://auth0.com/docs/api/v2/changes 中的“用户元数据”)。

这是我发送的有效负载(已编辑的无关信息):

这就是我打电话的方式:

//Calling to Get the token, working fine!
var managementApiClient = new ManagementApiClient(await GetAccessTokenAsync(), _config.Domain);

// create the user in Auth0
var result = await apiRetryPolicy.ExecuteAsync(
    async () =>
        await managementApiClient.Users.CreateAsync(userCreateRequest)
);


return result;

客户端是用 C# 和 .Net Core 编写的 - 我在任何地方都找不到与此相关的主要内容是我在输入参数中发送 type

【问题讨论】:

还没有答案!任何指导都会有所帮助!提前致谢! 我已经关注了这个线程:***.com/Questions/627356/…,并尝试了所有选项,包括从现有类型更改参数以将其分解为单个参数,但没有运气 - 得到相同的异常。基本上 CreateAsync() 是序列化我的对象并引入 $type。所以问题很清楚,需要找到如何确保它不这样做。 您使用的是哪个版本的 .net core? 您的 Json 设置是否可能生成 $type 属性? 【参考方案1】:

Auth0 将Json.NET 用于序列化对象。我们可以在 Auth0 GitHub 存储库中看到(HttpClientManagementConnection 类)。

而且 Auth0 序列化设置看起来不错。但是由于某些原因,Serializer 生成了$type 属性。

为了生成$type 属性,Json.NET 使用了TypeNameHandling 序列化设置。

您的 JSON 序列化设置似乎已重新定义。尝试使用全局 JSON DefaultSettings 并将 TypeNameHandling 属性全局设置为 None。

【讨论】:

【参考方案2】:

发送标头时,请确保它们正确,-d 选项将默认发送application/x-www-form-urlencoded 的内容类型

最后你想通过 JSON 发送。而且,您还应该发送一个额外的标头:-H "Content-Type: application/json"

在返回您的结果之前,请仔细检查其 JSON 格式,这可能会对您有所帮助,Auth0 Site

【讨论】:

以上是关于在 Auth0 中创建用户时出现有效负载验证错误的主要内容,如果未能解决你的问题,请参考以下文章

UnauthorizedError:身份验证时出现 jwt 格式错误的错误

当我尝试在 mysql 中创建触发器时出现语法错误

在 SQL Server Management Studio 中创建存储过程时出现语法错误

为啥在 PostgreSQL 中创建生成的列时出现错误?

使用 Vue.js 和 Auth0 进行前端认证时如何在 Django 的后端数据库中创建用户

警告:在 plsql 中创建包体时出现编译错误...