【问题标题】:How do I retrieve the API data from the LinkedIn Strategy for Opauth?如何从 LinkedIn Strategy for Opauth 中检索 API 数据?
【发布时间】:2016-02-14 08:31:58
【问题描述】:

我安装了 Google Opauth Strategy,它运行良好。 LinkedIn 的行为有点不同。在此策略的说明中,它指定不需要 OAuth 重定向 URL(在 LinkedIn 开发人员网站上)。我尝试忽略它,并不断收到此错误:

'无效的redirect_uri。此值必须与使用 API 密钥注册的 URL 匹配。'

这里的插件演示中也有这个错误:http://opauth.org/#demo

所以我对其进行了一些更改,并将我的重定向 URL 放在那里以防万一,就像我的谷歌一样,它似乎奏效了!它把我带到了 LinkedIn 登录屏幕,我输入了我的凭据,然后它把我重定向回了我的应用程序。问题是,这次没有返回任何数据。

我在 LinkedInStrategy.php 中的默认设置如下所示:

public $defaults = array(
    'redirect_uri' => 'http://example.com/users/login',
    'response_type' => 'code',
    'scope' => 'r_fullprofile r_emailaddress r_contactinfo'
);

在我的控制器中,我有这个:

$_SESSION['log'] = $this->data;

在我看来,我有这个:

debug($_SESSION['log']);

这只是为了查看数据是否正在设置。当我使用 GoogleStrategy.php 设置登录时,此行显示所有数据,我用它来登录。完美。但是使用 LinkedIn 策略,我只得到一个空数组。有人有什么想法吗?

编辑:

根据 LinkedIn API 文档here,我返回的代码是成功验证后返回的正确代码(重定向 uri、代码和响应 URL 中的状态)。所以我知道到目前为止连接一切都是正确的,只是获取数据必须不同于常规 Opauth 文档中所述的 $this->data 返回方法。

【问题讨论】:

    标签: api oauth-2.0 linkedin


    【解决方案1】:

    我解决了!我将 redirect_uri 改回默认值:

    'redirect_uri' => '{complete_url_to_strategy}oauth2callback',
    

    在 LinkedIn 开发人员 API 区域,我将此 URL 放置在 OAuth 2.0 重定向 URL 中:

    http://example.com/auth/linkedin/oauth2callback
    

    因此需要设置 OAuth 重定向 URL,这与他们的说明 here 不同。

    2. Create LinkedIn application at https://www.linkedin.com/secure/developer
    
        Enter your domain at JavaScript API Domain
        There is no need to enter OAuth Redirect URL
    

    此外,它必须是http://www.example.com/auth/linkedin/oauth2callback。如果不是那个 URL,它将不起作用,除非您自己更改一些配置文件和函数的名称。我的错误是我为它设置了一个自定义页面,而不是通过它的 oath2callback 函数然后前往重定向页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 2014-05-12
      • 2019-03-16
      • 1970-01-01
      • 2013-05-16
      相关资源
      最近更新 更多