我正在使用“omniauth-linkedin-oauth2”。
当我使用linkedin登录时,我收到此错误
无效的redirect_uri。此值必须与使用 API 密钥注册的 URL 匹配。
这是我的设置:
我正在使用“omniauth-linkedin-oauth2”。
当我使用linkedin登录时,我收到此错误
无效的redirect_uri。此值必须与使用 API 密钥注册的 URL 匹配。
这是我的设置:
您只需查看您收到该错误消息的 url。
例如。如果您使用 python 的社交身份验证,则 url 如下所示:
https://www.linkedin.com/uas/oauth2/authorization?scope=r_basicprofile+r_emailaddress&state=XXXXXX&redirect_uri=http://example.com.au/sa/complete/linkedin-oauth2/&response_type=code&client_id=YYYYYYY
因此您可以将上述 url 的这一部分用于重定向 url
http://example.com/sa/complete/linkedin-oauth2/
请检查您的redirect_url。对于我的情况,我看到这样。
为此,我添加了 OAuth 2.0 授权重定向 URL 的 URL:
http://localhost:1729/signin-linkedin
其中http://localhost:1729 =base url 和
signin-linkedin = 添加在 base url 之后的字符串
另一种解决方案是验证您一直在使用的client_id。因为redirect_uri 列表中的每次更新都会更新client_id。
值得一提的是,当使用库处理 oauth 时:一些库不关心所使用的协议(或至少需要进一步的参数化)。例如,我将 Linkedin https://example/callback作为 oauth2 url,但库以http://example/callback作为参数发送了请求。
我在尝试从 zurb Reveal 模式弹出窗口授权时遇到了这个问题。就我而言,问题是弹出窗口中显示的页面的 URL 不在我的 LinkedIn 开发人员站点上的 OAuth2 重定向 URL 列表中。
这很容易被忽略,因为模态页面中的页面 URL 不是当前显示在浏览器地址栏中的 URL。一旦我添加了弹出窗口中显示的页面的 URL,它就起作用了。
花了几个小时后,我终于找到了解决方案。您收到错误没问题,只需检查 url 并找到 redirect_uri。将它的值复制并粘贴到您的linkedin 开发帐户oauth2 重定向字段中。