0

我试图连接基本的 PHP/JS Auth0 集成,但“userInfo”调用总是不返回任何内容,甚至不返回空数组。这就是我的设置方式。

首先,非常简单的“登录”页面。

<?php
require_once 'config.php';
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Testing Auth0 PHP</title>
</head>
<body>
    <script src="https://cdn.auth0.com/w2/auth0-widget-5.2.min.js"></script>
    <script>
        var widget = new Auth0Widget({
            domain: "<?php echo $auth0_cfg['domain'] ?>",
            clientID: "<?php echo $auth0_cfg['client_id'] ?>",
            callbackURL: "<?php echo $auth0_cfg['redirect_uri'] ?>",
            callbackOnLocationHash: true
          });
    </script>
    <button onclick="widget.signin()">Login</button>
</body>
</html>

然后是回调页面,即用户被 Auth0 自动重定向的地方(所以我知道那部分正在工作)。

<?php

require_once 'vendor/autoload.php';
require_once 'config.php';

use Auth0SDK\Auth0;

$auth0 = new Auth0(array(
    'domain'        => $auth0_cfg['domain'],
    'client_id'     => $auth0_cfg['client_id'],
    'client_secret' => $auth0_cfg['client_secret'],
    'redirect_uri'  => $auth0_cfg['redirect_uri']
));

$userInfo = $auth0->getUserInfo();

if (!$userInfo) {
  print 'No user';
} else {
  print 'User';
}

url 中包含令牌信息,并且始终如下所示:

http://localhost/hack/internal.php#access_token=zF...7jWOb&id_token=eyJ0eXAiOi...fvyW8P0DH4k&token_type=bearer

我已经尝试查找一些关于此的 Auth0 教程,但看不到我缺少什么。有没有熟悉 Auth0 的人遇到过这个问题?

4

1 回答 1

4

您是否从代理后面运行示例?GetUserInfo是服务器到服务器的调用(从您的 Web 服务器到 auth0.com)。有时(尤其是在公司环境中),流量会被非用户进程阻止。

我怀疑是这种情况,因为所有其他交互都运行良好(但它们通过浏览器,而不是 Web 服务器)。

您可以尝试通过不在代理后面的网络快速连接。

此外,我使用您在上面提供的信息测试了userinfo您帐户的端点access_token(顺便说一句,我删除了它,因为它是敏感信息),它工作得很好。您可以通过 Postman 等工具自行测试。

(在eugeniop AT auth0.com上联系我了解详情)

于 2014-09-14T00:09:50.113 回答