无法在环回上实现ouath2

时间:2016-11-07 08:14:21

标签: node.js oauth oauth-2.0 loopbackjs

我想使用loopback实现oauth2服务器。我以前使用快速完成它并且它完美地工作,但是使用环回我有一些问题。这是oauth2orize的代码: var app = require('../../ server / server'); //在任何node.js app中都需要server.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方法

1 个答案:

答案 0 :(得分:2)

我最近遇到了同样的问题并找出了问题(无论如何我都是这样)。问题是我的客户端模型没有clientId字段。我有oauth2orize字段,但似乎id模块也特别需要{{1}}字段。有点跛,但不难实施。