首页 > 解决方案 > Asp.Net MVC LinkedIn OAuth 2.0 登录失败

问题描述

LinkedIn 登录突然停止工作,错误代码为error=access_denied,代码库或包没有任何变化。

根据文档错误代码access_denied,表示用户已拒绝许可,但即使在授予许可时也会发生这种情况,我们仅请求默认信息电子邮件 ID。

问题是返回的用户信息始终为空。

使用的 Nuget 包是Owin.Security.Providers.LinkedIn : 2.22.0,我们尝试更新它,但它没有解决问题。

对于诊断,我们检查了linkedIn 应用程序设置,它看起来不错,也可以通过 javascript sdk 登录相同的应用程序 ID,因此问题似乎与应用程序 ID 无关。

在 github 中没有提出与它相关的问题。所以,不知道根本问题在哪里。

该问题的任何指针或解决方案都会有所帮助。

标签: c#asp.net-mvcoauth-2.0linkedin

解决方案


调试nuget包Owin.Security.Providers.LinkedIn https://github.com/TerribleDev/OwinOAuthProviders的源代码后遇到问题。

由于 tls 协商问题,对端点https://www.linkedin.com/oauth/v2/accessToken的调用失败,并在 LinkedInAuthenticationHandler 类的 AuthenticateCoreAsync 方法中抛出底层连接已关闭错误。我设置了 SecurityProtocol,如下面的代码片段所示。

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls |
                                       SecurityProtocolType.Tls11 |
                                       SecurityProtocolType.Tls12;

不知道为什么尽管其他端点正在工作,但对这个端点的调用却突然失败了。


推荐阅读