【发布时间】: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 返回方法。
【问题讨论】: