【发布时间】:2015-07-20 15:13:52
【问题描述】:
我一直在尝试使用这个elegant looking package 来通过 Jawbone API 进行身份验证。但我不断收到此错误 -
我已使用 Jawbone API 服务配置我的“应用程序”以使用这些重定向 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);
});
我假设我犯了一个新手错误,并且可能误读了文档或示例。有人可以指出我的配置错误吗?
【问题讨论】:
-
host的值应该是localhost:5000我知道这有点误导。 -
哦,这有帮助。现在我收到“此网页有重定向循环”错误。我的路线做错了什么?我不能只是 res.send() 将结果发送到 /done 吗?
-
callback键包含服务器上要接收结果的路径。/connect/jawbone/callback路由由 Grant 在内部使用,因此您不能使用该路由。此外,jawbone提供程序的callback键会覆盖为server指定的全局callback键。只需像这样callback:'/handle_callback'为jawbone设置callback键,您就会在/handle_callback路由中获得结果(顺便说一句,所有这些都在文档中)。 -
谢谢。我收到了“{}”,并认为这是一次失败的身份验证尝试。但我想这意味着成功。如果您想将此作为答案提交,我会接受。顺便说一句,这个模块做得很好。谢谢。
-
发布了答案,希望对其他人也有帮助。
标签: node.js express oauth-2.0 jawbone grant-oauth