使用 Indy 实现 OAuth2 规范的 V10
Implementing V10 of the OAuth2 specification with Indy
我正在尝试为 MailChimp 实施 OAuth2。
在 their API documentation 他们说
Our server implements v10 of the OAuth2 specification, and supports
Web Server Flow.
对于过去的 OAuth2 实现,我使用了这些设置:
SSLOptions.Method := sslvSSLv23;
SSLOptions.SSLVersions := [sslvSSLv23];
--- or ---
SSLOptions.Method := sslvTLSv1_2;
SSLOptions.SSLVersions := [sslvTLSv1_2];
Indy10 是否支持 版本 10??
TIdSSLVersion = (sslvSSLv2, sslvSSLv23, sslvSSLv3, sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2);
我在尝试调用 OAuth 时遇到 "HTTP/1.0 400 Bad Request" 错误。不确定这是错误的参数还是我没有发送正确的 SSL 版本控制。他们提供的不多 documentation/troubleshooting.
Indy 根本不支持OAuth,更不用说OAuth2 的v10 了。不过,有几个使用 Indy 的第三方 OAuth 实现可用。
也就是说,与服务器的通信只是普通的 HTTPS,Indy 处理得很好。假设您要向 https:
url 而不是 http:
url 发送请求,那么您看到 "HTTP/1.0 400 Bad Request" 的事实就意味着 SSL/TLS工作正常,因为请求和响应都是加密的。 "Bad Request" 仅仅意味着你的 HTTP 请求参数是错误的。
在没有看到实际的 HTTP 消息的情况下,我只能猜测 OAuth 身份验证可能在某种程度上存在格式错误。
我正在尝试为 MailChimp 实施 OAuth2。
在 their API documentation 他们说
Our server implements v10 of the OAuth2 specification, and supports Web Server Flow.
对于过去的 OAuth2 实现,我使用了这些设置:
SSLOptions.Method := sslvSSLv23;
SSLOptions.SSLVersions := [sslvSSLv23];
--- or ---
SSLOptions.Method := sslvTLSv1_2;
SSLOptions.SSLVersions := [sslvTLSv1_2];
Indy10 是否支持 版本 10??
TIdSSLVersion = (sslvSSLv2, sslvSSLv23, sslvSSLv3, sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2);
我在尝试调用 OAuth 时遇到 "HTTP/1.0 400 Bad Request" 错误。不确定这是错误的参数还是我没有发送正确的 SSL 版本控制。他们提供的不多 documentation/troubleshooting.
Indy 根本不支持OAuth,更不用说OAuth2 的v10 了。不过,有几个使用 Indy 的第三方 OAuth 实现可用。
也就是说,与服务器的通信只是普通的 HTTPS,Indy 处理得很好。假设您要向 https:
url 而不是 http:
url 发送请求,那么您看到 "HTTP/1.0 400 Bad Request" 的事实就意味着 SSL/TLS工作正常,因为请求和响应都是加密的。 "Bad Request" 仅仅意味着你的 HTTP 请求参数是错误的。
在没有看到实际的 HTTP 消息的情况下,我只能猜测 OAuth 身份验证可能在某种程度上存在格式错误。