生成 OAuth 2 SASL 字符串时出现错误代码 400
Posted
技术标签:
【中文标题】生成 OAuth 2 SASL 字符串时出现错误代码 400【英文标题】:Error code 400 on generating OAuth 2 SASL string 【发布时间】:2013-07-16 00:36:29 【问题描述】:我为 OAuth 2 生成了以下 SASL 字符串:
user=designadmin@mydesign.mygbiz.com^Aauth=Bearer ya29.AHES6ZTtYOu0NR0vAYbrvKZNcHJPuZEpr4Hk3W3dXcXFQ88^A^A
然后我对其进行编码并像这样发送编码后的字符串:
MSB AUTHENTICATE XOAUTH2 编码字符串
但我得到的错误响应为:
"status":"400","schemes":"Bearer","scope":"https://mail.google.com/"
这个错误是什么意思,我该如何纠正它?
【问题讨论】:
你是在插入 caret-a,还是控制 a(代码点 1) 是的,我已经尝试过使用“^A”和“\001”。 使用 \001。还打印出 IMAP 错误,在 bad or no response 中,它包含的信息不仅仅是 400。 我得到了同样的错误。你有想过这个吗? 【参考方案1】:我终于明白了。就我而言,令牌生成过程中缺少 Gmail 范围(“https://mail.google.com/”)。它现在工作正常。
【讨论】:
你能详细解释一下吗? 当您调用generateAuthUrl
时,您需要传递一个对象,其中包含一个字符串数组scope
作为作用域,其中一个字符串是"https://mail.google.com/"
。【参考方案2】:
+1 to akshay 自我回答。
如果您使用过期的令牌,也会发生这种情况。如果是这种情况,只需重新验证您的用户并使用新令牌。
【讨论】:
以上是关于生成 OAuth 2 SASL 字符串时出现错误代码 400的主要内容,如果未能解决你的问题,请参考以下文章
AWS 认知;命中 /oauth2/token 时出现未授权客户端错误
尝试使用 Discord 的 oauth2 时出现“invalid_grant”错误