OpenID提供程序终结点与发现的OpenID提供器终结点不匹配

OpenID provider endpoint does not match discovered OpenID provider endpoint

本文关键字:OpenID 结点 不匹配 程序 发现      更新时间:2024-05-21

老实说,这是我第一次开发openID应用程序,所以我不清楚条款和条件,但现在开始了。。。我正在尝试将openID与nodeJS openID插件一起使用,但我遇到了以下错误。

OpenID provider endpoint in assertion response does not match discovered OpenID provider endpoint

经过对源代码的挖掘,我相信这是因为我有

https://www.google.com/accounts/o8/ud?source=gmail.com&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns....

作为身份验证URL,但响应返回source=gmail.com,如下所示

https://www.google.com/accounts/o8/ud?&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns....

我只是在插件的网站上使用发布的示例代码,所以我相信我的实现是正确的,但我对下面代码中的openID标识符"gmail.com"不太有信心。我是否应该为Goggle传递另一个不设置源URL属性的字符串?如果是这种情况,我在哪里可以找到其他openID提供商的标识符列表?

    relyingParty.authenticate(identifier, false, function(error, authUrl) {
        if (error) {
          res.writeHead(200);
          res.end('Authentication failed: ' + error.message);
        } else if (!authUrl) {
          res.writeHead(200);
          res.end('Authentication failed');
        } else {
          res.writeHead(302, { Location: authUrl });
          res.end();
        }
    });

感谢您的帮助,

这是node-openid中的一个错误,已修复。0.5.6版(或更高版本)在npm上可用,没有此错误。