首页 > 解决方案 > 此错误的含义是什么:“客户端身份验证只能使用一种机制提供”

问题描述

我正在达到以下端点

https://<my company>.onelogin.com/oidc/token

有时我会收到以下错误响应,但我不确定这意味着什么。

{"error":"invalid_request","error_description":"client authentication must only be provided using one mechanism"}

我将以下字段作为参数发送:

grant_type=authorization_code

代码=已编辑

redirect_uri=已编辑

client_id=已编辑

client_secret=编辑

任何人都可以解释为什么这个端点会间歇性地失败吗?

标签: apisessionlogintokenonelogin

解决方案


我们已经弄清楚了导致这种“单一机制”问题的原因。我们向 OneLogin 技术支持团队发送了电子邮件,并收到了以下回复:

正如您在我们的文档中看到的那样,“client_secret”的位置取决于您的令牌端点身份验证方法设置。API 参考

如果身份验证方法 = POST,则“client_secret”在正文中。

如果 Authentication Method = Basic 则“client_secret”被编码并放置在 Authorization 标头中。

您的应用程序当前正在授权标头和 POST 正文中发送此值。在过去,这不是问题,但随着规范的收紧,它将导致您的应用程序出现 400 错误。

他们将很快更新他们的文档,但现在,请使用本指南来摆脱应用程序中的“单一机制”错误。


推荐阅读