POST https://www.linkedin.com/uas/oauth2/accessToken HTTP / 1.1导致在LinkedIn上找不到方法

时间:2015-04-07 13:16:53

标签: 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==

正在寻找任何人确认在导致此错误的LUN上发生了更改,并且该更改并非特定于应用程序。

请注意,我删除了clientid / secrets以上的内容。

6 个答案:

答案 0 :(得分:2)

我早上大部分时间都在休息,并试图让它发挥作用。令人沮丧的是,它使用Advanced Rest Client chrome工具正常工作。这个和fiddler的组合显示标题中唯一的区别是标题中的Expect: 100-continue标志。我能够将其设置为false的唯一方法是在web.config部分

<system.net>
    <settings>
        <servicePointManager expect100Continue="false" />
    </settings>
</system.net>

希望这有帮助。

答案 1 :(得分:0)

我今天早上也遇到了这个问题(我使用的是DotNetOpenAuth)。看起来这与使用以下请求标头有关:Expect: 100-continue

删除此请求标头后,不再出现HTTP/1.1 405 Method Not Allowed响应。显然,如果您无法访问源代码,这没有多大帮助!

我假设这是由于LinkedIn的变化,因为我今天早上才开始遇到问题。我猜测他们需要为此修复此问题。

答案 2 :(得分:0)

我今天开始遇到这个问题。经过一些关于Expect的研究:100-继续我发现了             System.Net.ServicePointManager.Expect100Continue = false;

在Global.asax内部的Application_Start()函数中,从请求中取出100-continue,我在LinkedIn上的登录现在再次运行。

不是永久性修复,因为我想现在为什么它首先破坏了。

答案 3 :(得分:0)

对于那些使用Owin Middleware和Owin.Security.Providers

的人

使用修复程序创建了预发布的nuget。 https://www.nuget.org/packages/Owin.Security.Providers/1.17.0-pre

这适用于现在。但是,在我们知道什么是更改或者声明他们更改了什么之前,人们可以将其用作修补程序。

可以在以下位置找到有关修复的更多背景信息: https://github.com/RockstarLabs/OwinOAuthProviders/issues/87#issuecomment-90838017

但根本原因是LinkedIn改变了一些accessToken端点,导致大多数libs使用linkedin SSO必须应用修补程序,但我们还没有听到任何来自linkedin。

答案 4 :(得分:0)

我有同样的问题也使用DotNetOpenAuth。

我如何解决:

  1. 我从请求标题"Expect: 100-continue"
  2. 中删除
  3. 在我的情况下redirect_uri已编码,我删除了redirect_uri的编码(对于https://www.linkedin.com/uas/oauth2/accessToken的请求)

答案 5 :(得分:0)

找到了卷曲的解决方案,非常简单:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:') );