Fiware 使用keystone进行身份验证后,Cosmos gui应用程序崩溃
我有个问题。尝试使用keystone进行授权后,我的cosmos gui应用程序崩溃。 地平线应用程序正在运行, 当cosmos gui正在运行时。 我的gui配置文件如下所示:Fiware 使用keystone进行身份验证后,Cosmos gui应用程序崩溃,fiware,fiware-cosmos,Fiware,Fiware Cosmos,我有个问题。尝试使用keystone进行授权后,我的cosmos gui应用程序崩溃。 地平线应用程序正在运行, 当cosmos gui正在运行时。 我的gui配置文件如下所示: "oauth2": { "idmURL": "https://192.168.4.33", "client_id": "***********************************", "client_secret": "*********************************", "callbac
"oauth2": {
"idmURL": "https://192.168.4.33",
"client_id": "***********************************",
"client_secret": "*********************************",
"callbackURL": "http://192.168.4.180:81/auth",
"response_type": "code"
},
在horizon内部,我注册了应用程序Cosmos Big data
带参数:
Description
Cosmos Big data
URL
https://192.168.4.33
Callback URL
http://192.168.4.180:81/auth
因此,之后我启动cosmos gui应用程序,单击登录后,它会将我重定向到以下url:
https://192.168.4.33/oauth2/authorize/?response_type=code&client_id=0434fdf60897479588c3c31cfc957b6d&state=xyz&redirect_uri=http://192.168.4.180:81/auth
http://192.168.4.180:81/auth?state=xyz&code=NVfyZUov1KuQ8yTw498oItHgYC2l9Z
没关系。但是,当我单击“授权”按钮时,它会将我引导到以下url:
https://192.168.4.33/oauth2/authorize/?response_type=code&client_id=0434fdf60897479588c3c31cfc957b6d&state=xyz&redirect_uri=http://192.168.4.180:81/auth
http://192.168.4.180:81/auth?state=xyz&code=NVfyZUov1KuQ8yTw498oItHgYC2l9Z
此时,cosmos gui应用程序崩溃,我从日志中得到的所有信息如下:
/home/cosmos-gui/fiware-cosmos/cosmos-gui/src/app.js:138
req.session.access_token = results.access_token;
^
TypeError: Cannot read property 'access_token' of undefined
at /home/cosmos-gui/fiware-cosmos/cosmos-gui/src/app.js:138:43
at /home/cosmos-gui/fiware-cosmos/cosmos-gui/src/oauth2.js:168:22
at ClientRequest.<anonymous> (/home/cosmos-gui/fiware-cosmos/cosmos- gui/src/oauth2.js:140:9)
at ClientRequest.emit (events.js:95:17)
at CleartextStream.socketErrorListener (http.js:1548:9)
at CleartextStream.emit (events.js:95:17)
at SecurePair.<anonymous> (tls.js:1400:19)
at SecurePair.emit (events.js:92:17)
at SecurePair.maybeInitFinished (tls.js:980:10)
at CleartextStream.read [as _read] (tls.js:472:13)
经过一些调试和打印参数后,这些参数进入app.get('/auth',function(req,res) 我发现了这个错误:深度\u零\u自签名\u证书 它似乎不承认自签名证书是有效的。 无论如何,作为文件中的第一行: cosmos gui/src/app.js 我补充说
现在它正在工作。当您在Keystone中授权Cosmos应用程序时,将调用回调URL并执行此软件:
// Handles requests from IDM with the access code
app.get('/auth', function(req, res) {
// Using the access code goes again to the IDM to obtain the access_token
oa.getOAuthAccessToken(req.query.code, function (e, results){
// Stores the access_token in a session cookie
req.session.access_token = results.access_token;
res.redirect('/');
});
});
也就是说,Keystone使用访问代码(软安全性)调用回调,该代码可用于检索最终访问令牌(硬安全性元素)
您的Keystone似乎正在生成访问代码,但在请求时没有返回访问令牌。您能否检查Keystone日志以查找访问令牌请求?您是否可以打印此调用返回的任何错误
oa.getOAuthAccessToken(req.query.code, function (e, results)
我没有注意到这个自我回答,对不起。那么,它修复了错误吗?是的,修复了它。:)