使用keyrock验证测试Web应用程序时出现问题

时间:2015-08-12 10:33:38

标签: javascript node.js oauth-2.0 fiware

首先我们在fiware实验室中设置我们的应用程序: enter image description here

我们用于创建应用的代码位于this site

我们从该链接中唯一改变的是config.js:

var config = {}

config.idmURL = 'https://account.lab.fiware.org/';
config.client_id = 'f9b5940d67a741a38039690e4d6e6c6f';
config.client_secret = 'c9f854c96c9e4c70a0d402bce3233a17';
config.callbackURL = 'http://panonit.com:8802/user_info';

// Depending on Grant Type:
// Authorization Code Grant: code
// Implicit Grant: token
config.response_type = 'code';

module.exports = config;

部署节点服务器时,我们启动并运行以下站点(在同事笔记本电脑上): the site 你可以在欧洲中部时间09h和18h之间看到它。

点击登录后,我们将被正确地带到用户可以进行身份​​验证的fiware网站: authenticate

这就是网站中断的地方(它说页面不可用): page unavailable

为了解决这个问题,我们只更改了server.js以仅输出响应:

// Ask IDM for user info
app.get('/user_info', function(req, res){
    var url = config.idmURL + '/user/';

    // Using the access token asks the IDM for the user info
    oa.get(url, req.session.access_token, function (e, response) {

        //var user = JSON.parse(response);
  var user = response;
  console.log("Getting user response is: " + user)
        //res.send("Welcome " + user.displayName + "<br> Your email address is " + user.email + "<br><br><button onclick='window.location.href=\"/logout\"'>Log out</button>");
  res.send("Welcome " + user)
    });
});

执行此操作后,我们重新启动了服务器。从这里我们再次按下登录并验证应用程序使用情况,而不是我们得到的网站中断: enter image description here

这里我们得出结论,响应是一个空对象,因为打印出未定义。

我们在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

检查它,问题是你使用了错误的回调网址。如果您选中server.js,则您使用的回调网址的路径为/user_info,要使用该路径,首先您需要在req.session.access_token检索到的/login。只需更改回调网址:

config.callbackURL = 'http://panonit.com:8802/login';

一切都应该有效。另请记住在您的IdM应用配置中更改它!

答案 1 :(得分:0)

是的,这个问题是albertinisg所指出的。 callbackURL必须是/ login才能获取代码并从中检索访问令牌。然后使用访问令牌,您将能够检索用户信息。

BR