我一直在尝试使用此elegant looking package来验证Jawbone API。但我一直收到这个错误 -
我已使用Jawbone API服务配置我的“app”以使用这些重定向URI -
我的配置文件如下所示 -
module.exports = {
'server': {
'protocol' : 'https',
'host' : 'localhost',
'port' : 5000,
'callback' : '/done',
'transport' : 'session',
'state' : true
},
'jawbone' : {
'key' : '6f*********',
'secret' : '9b************************',
'callback' : '/connect/jawbone/callback',
'scope' : ['basic_read', 'sleep_read'],
}
}
我试图按照authors examples生成这样的app.js -
var config = require('./config');
var express = require('express');
var session = require('express-session');
var Grant = require('grant-express');
var grant = new Grant(require('./config.js'));
var bodyParser = require('body-parser')
var app = express()
var Purest = require('purest');
var jawbone = new Purest({provider:'jawbone'});
var https = require('https');
var fs = require('fs');
var logger = require('morgan')
app.use(logger('dev'))
app.use(bodyParser.urlencoded({extended:true}));
app.use(session({secret:'grant'}));
app.use(grant);
app.get('/done', function (req, res) {
console.log(req.query);
res.end(JSON.stringify(req.query, null, 2));
});
/*
jawbone.get('users/@me', {
auth:{bearer:'[ACCESS_TOKEN]'}
}, function (err, res, body) {
// body is a parsed JSON object containing the response data
console.log(body);
})
*/
var sslOptions = {
key: fs.readFileSync('./.server.key'),
cert: fs.readFileSync('./.server.crt')
};
var secureServer = https.createServer(sslOptions, app).listen(config.server.port, function(){
console.log('Listening on port ' + config.server.port);
});
我认为我正在制作noob-error并且可能误读了文档或示例。有人可以指出我的配置错误吗?
答案 0 :(得分:1)
如上面的评论中所述,您的配置应如下所示:
{
'server': {
'protocol' : 'https',
'host' : 'localhost:5000',
'transport' : 'session',
'state' : true
},
'jawbone' : {
'key' : '6f*********',
'secret' : '9b************************',
'callback' : '/handle_jawbone_callback',
'scope' : ['basic_read', 'sleep_read'],
}
}
目前没有单独的port
选项,因此,如果您的应用上没有某种虚拟主机,则应将端口号附加到host
值 - host:'localhost:5000
。
对于callback
密钥,您应始终在服务器上设置要从OAuth流接收结果的路径。您为OAuth应用程序/connect/jawbone/callback
指定的redirect_uri
路由是为Grant保留的,因此您无法直接使用该路由。
例如,您可以像这样设置最终路线:callback:'/handle_jawbone_callback'
。
所有这些都记录在模块的readme file中。