老实说,这是我第一次开发openID应用程序,所以我不清楚条款和不清楚但是在这里它...我试图使用openID与nodeJS openID plugin但我在下面错误。
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....
作为身份验证网址,但响应返回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(); } });
感谢您的帮助,
答案 0 :(得分:1)
这是node-openid
中已修复的错误。版本0.5.6(或更高版本)在npm
上可用,并且没有此错误。