【发布时间】:2017-03-20 12:32:47
【问题描述】:
我想使用环回实现一个 oauth2 服务器。我之前使用 express 完成了它,并且效果很好,但是使用环回我遇到了一些问题。这是 oauth2orize 的代码:
var app = require('../../server/server'); //需要server.js,就像在任何node.js应用程序中一样
var User = app.models.user;
var Client = app.models.client;
var Token = app.models.token;
var Code = app.models.code;
var server = oauth2orize.createServer();
// Register serialialization function
server.serializeClient(function(client, callback) {
return callback(null, client._id);
});
// Register deserialization function
server.deserializeClient(function(id, callback) {
Client.findOne({ _id: id }, function (err, client) {
if (err) { return callback(err); }
return callback(null, client);
});
});
// User authorization endpoint
exports.authorization = [
server.authorization(function(clientId, redirectUri, callback) {
console.log('At Authorization endpoint');
var Client = app.models.client;
Client.findOne({where :{ appId: clientId }}, function (err, client) {
if (err) { return callback(err); }
console.log("Found client : "+client);
return callback(null, client, redirectUri);
});
})]
当我调用授权端点时,我收到一个错误: 错误:无法序列化客户端。使用 serializeClient() 注册序列化函数 但是我已经实现了 server.serializeClient 和 server.deserializeClient 方法
【问题讨论】:
-
应该
exports.authorisation是一个对象而不是一个数组? IE。exports.authorization = {... -
另外,这不是一个答案,但你可以考虑 Loopback oauth2 实现 loopback.io/doc/en/lb2/OAuth-2.0.html 我没试过,所以不能保证
标签: node.js oauth oauth-2.0 loopbackjs