POST https://www.linkedin.com/uas/oauth2/accessToken HTTP/1.1 结果在 LinkedIn 上找不到方法
POST https://www.linkedin.com/uas/oauth2/accessToken HTTP/1.1 results in Method Not Found on LinkedIn
我正在使用 LinkedIn Owin Middleare,今天早上开始 运行 问题,现在已将其重现为以下错误:
POST https://www.linkedin.com/uas/oauth2/accessToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.linkedin.com
Cookie: bscookie="v=1&201504071234373bc02b47-9d08-477f-8375-b80b281ef416AQEptFjv8jXPI93YmF-H-3kvnwSLwBF8"; bcookie="v=2&46f6f299-6702-48bf-8634-7ba023bd5099"; lidc="b=LB23:g=218:u=215:i=1428412320:t=1428487523:s=AQEQQq6vlEKPT3LW8c0cPEzRTKp-ToxL"
Content-Length: 267
Expect: 100-continue
Connection: Keep-Alive
grant_type=authorization_code&code=AQQRSgEH8vczSFJKNxtMpunzjYN6YJxoF2hiX_d9RVkqBvMC7TzRpur0p9NJFdQOUNf8RmFyj_cCg3ENTucRw5e-gQfEZ5sPGoujiFRsQ8Tb0pLnaog&redirect_uri=http%3A%2F%2Flocalhost%3A1729%2Fsignin-linkedin&client_id=&client_secret=
未找到方法的结果。
HTTP/1.1 405 Method Not Allowed
Date: Tue, 07 Apr 2015 13:13:16 GMT
Content-Type: text/html
Content-Language: en
Content-Length: 5487
X-Li-Fabric: PROD-ELA4
Strict-Transport-Security: max-age=0
Set-Cookie: lidc="b=LB23:g=218:u=215:i=1428412396:t=1428487523:s=AQExeP2uX-7KXQv79NIZmW0LB09uE4eJ"; Expires=Wed, 08 Apr 2015 10:05:23 GMT; domain=.linkedin.com; Path=/
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store
Connection: keep-alive
X-Li-Pop: PROD-IDB2
X-LI-UUID: 0FM/jIG90hPAzyhAqCsAAA==
正在寻找任何人来确认 linkedin 上的更改导致了此错误,并且它不是特定于应用程序的。
请注意,我删除了上面的内容 clientid/secrets。
我 运行 今天早上也遇到了这个问题(我使用的是 DotNetOpenAuth)。看起来这与使用以下请求有关 header: Expect: 100-continue
删除此请求后 header,HTTP/1.1 405 Method Not Allowed
响应不再出现。显然,如果您无法访问源代码,这对您没有多大帮助!
我假设这是由于 LinkedIn 的变化,因为我今天早上才开始遇到问题。我猜他们需要研究解决这个问题。
我今天开始遇到这个问题。在对 Expect: 100-continue 进行一些研究后,我发现将
System.Net.ServicePointManager.Expect100Continue = false;
在 Global.asax 内的 Application_Start() 函数中,从请求中取出 100-continue,我现在可以再次登录 LinkedIn。
这不是一个永久性的修复,因为我现在想知道它为什么会首先崩溃。
我上午的大部分时间都在休息,并试图让它发挥作用。令人沮丧的是,它使用 Advanced Rest Client chrome 工具运行良好。这个和 fiddler 的组合显示 header 中的唯一区别是 header 中的 Expect: 100-continue
标志。我能够将其设置为 false 的唯一方法是在 web.config 部分
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
希望对您有所帮助。
对于使用 Owin 中间件和 Owin.Security.Providers
的用户
已创建带有修复程序的预发布 nuget。
https://www.nuget.org/packages/Owin.Security.Providers/1.17.0-pre
目前有效。但在我们知道 linkedin 更改了什么或附带有关他们更改的内容的声明之前,人们可以将其用作修补程序。
有关修复的更多背景信息,请访问:
https://github.com/RockstarLabs/OwinOAuthProviders/issues/87#issuecomment-90838017
但根本原因是 LinkedIn 更改了 accessToken 端点上的某些内容,导致大多数使用 linkedin SSO 的库必须应用修补程序,但我们还没有收到 linkedin 的任何消息。
我在使用 DotNetOpenAuth 时也遇到了同样的问题。
我如何修复:
- 我从请求中删除 header
"Expect: 100-continue"
- 在我的例子中
redirect_uri
被编码,我删除了 redirect_uri
的编码(对于 https://www.linkedin.com/uas/oauth2/accessToken 的请求)
找到了 curl 的解决方案,非常简单:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:') );
我正在使用 LinkedIn Owin Middleare,今天早上开始 运行 问题,现在已将其重现为以下错误:
POST https://www.linkedin.com/uas/oauth2/accessToken HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.linkedin.com
Cookie: bscookie="v=1&201504071234373bc02b47-9d08-477f-8375-b80b281ef416AQEptFjv8jXPI93YmF-H-3kvnwSLwBF8"; bcookie="v=2&46f6f299-6702-48bf-8634-7ba023bd5099"; lidc="b=LB23:g=218:u=215:i=1428412320:t=1428487523:s=AQEQQq6vlEKPT3LW8c0cPEzRTKp-ToxL"
Content-Length: 267
Expect: 100-continue
Connection: Keep-Alive
grant_type=authorization_code&code=AQQRSgEH8vczSFJKNxtMpunzjYN6YJxoF2hiX_d9RVkqBvMC7TzRpur0p9NJFdQOUNf8RmFyj_cCg3ENTucRw5e-gQfEZ5sPGoujiFRsQ8Tb0pLnaog&redirect_uri=http%3A%2F%2Flocalhost%3A1729%2Fsignin-linkedin&client_id=&client_secret=
未找到方法的结果。
HTTP/1.1 405 Method Not Allowed
Date: Tue, 07 Apr 2015 13:13:16 GMT
Content-Type: text/html
Content-Language: en
Content-Length: 5487
X-Li-Fabric: PROD-ELA4
Strict-Transport-Security: max-age=0
Set-Cookie: lidc="b=LB23:g=218:u=215:i=1428412396:t=1428487523:s=AQExeP2uX-7KXQv79NIZmW0LB09uE4eJ"; Expires=Wed, 08 Apr 2015 10:05:23 GMT; domain=.linkedin.com; Path=/
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store
Connection: keep-alive
X-Li-Pop: PROD-IDB2
X-LI-UUID: 0FM/jIG90hPAzyhAqCsAAA==
正在寻找任何人来确认 linkedin 上的更改导致了此错误,并且它不是特定于应用程序的。
请注意,我删除了上面的内容 clientid/secrets。
我 运行 今天早上也遇到了这个问题(我使用的是 DotNetOpenAuth)。看起来这与使用以下请求有关 header: Expect: 100-continue
删除此请求后 header,HTTP/1.1 405 Method Not Allowed
响应不再出现。显然,如果您无法访问源代码,这对您没有多大帮助!
我假设这是由于 LinkedIn 的变化,因为我今天早上才开始遇到问题。我猜他们需要研究解决这个问题。
我今天开始遇到这个问题。在对 Expect: 100-continue 进行一些研究后,我发现将 System.Net.ServicePointManager.Expect100Continue = false;
在 Global.asax 内的 Application_Start() 函数中,从请求中取出 100-continue,我现在可以再次登录 LinkedIn。
这不是一个永久性的修复,因为我现在想知道它为什么会首先崩溃。
我上午的大部分时间都在休息,并试图让它发挥作用。令人沮丧的是,它使用 Advanced Rest Client chrome 工具运行良好。这个和 fiddler 的组合显示 header 中的唯一区别是 header 中的 Expect: 100-continue
标志。我能够将其设置为 false 的唯一方法是在 web.config 部分
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
希望对您有所帮助。
对于使用 Owin 中间件和 Owin.Security.Providers
的用户已创建带有修复程序的预发布 nuget。 https://www.nuget.org/packages/Owin.Security.Providers/1.17.0-pre
目前有效。但在我们知道 linkedin 更改了什么或附带有关他们更改的内容的声明之前,人们可以将其用作修补程序。
有关修复的更多背景信息,请访问: https://github.com/RockstarLabs/OwinOAuthProviders/issues/87#issuecomment-90838017
但根本原因是 LinkedIn 更改了 accessToken 端点上的某些内容,导致大多数使用 linkedin SSO 的库必须应用修补程序,但我们还没有收到 linkedin 的任何消息。
我在使用 DotNetOpenAuth 时也遇到了同样的问题。
我如何修复:
- 我从请求中删除 header
"Expect: 100-continue"
- 在我的例子中
redirect_uri
被编码,我删除了redirect_uri
的编码(对于 https://www.linkedin.com/uas/oauth2/accessToken 的请求)
找到了 curl 的解决方案,非常简单:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:') );