headers 中的环回使用令牌
loopback use token in headers
我在尝试恢复模型的 remoteMethods 中的令牌用户 ID 时遇到问题。我使用了以下代码:
User.beforeRemote('**', function(ctx, user, next) {
//...some custom token decoding
ctx.req.body.user_id = token.user_id;
console.log('token : ', token);
next();
});
然后,在我的模型中我使用了:
User.check = function (user_id, cb) {
// Do stuff..
};
User.remoteMethod(
'check',
{
http: {path: '/check', verb: 'post'},
returns: {arg: 'rate', type: 'object'},
accepts: [
{
arg: 'user_id',
type: 'number',
required: true,
description: "id of the user to check",
http: function getUserid(ctx) {
console.log('User.check http body : ', ctx.req.body);
return ctx.req.body.user_id;
}
}
],
description: ''
}
);
问题是我的 arg 函数 'getUserid' 在 'User.beforeRemote' 调用之前被触发。
这是一个错误吗?你知道我该怎么做吗?
我不想使用
arg : {http : {source : 'body'}},
因为我只想在远程方法中使用 user_id arg,而且我必须在大约 20~30 个现有方法中这样做
谢谢!
我终于找到了一种更简单的方法:
我在中间件中添加了我的令牌解码,它工作正常,具有经典的 arg 类型编号,没有 http 功能:
//middleware dir :
module.exports = function (app) {
"use strict";
return function (req, res, next) {
//Custom token decoding code ....
//used req.body to show example with post requests :
req.body.user_id = parseInt(token.user_id);
console.log('token : ', token);
next();
};
};
//remote Method declaration, without need to add a beforeRemote method :
User.remoteMethod(
'check',
{
http: {path: '/check', verb: 'post'},
returns: {arg: 'rate', type: 'object'},
accepts: [
{
arg: 'user_id',
type: 'number',
required: true,
description: "id of the user to check"
}
],
description: ''
}
);
我在尝试恢复模型的 remoteMethods 中的令牌用户 ID 时遇到问题。我使用了以下代码:
User.beforeRemote('**', function(ctx, user, next) {
//...some custom token decoding
ctx.req.body.user_id = token.user_id;
console.log('token : ', token);
next();
});
然后,在我的模型中我使用了:
User.check = function (user_id, cb) {
// Do stuff..
};
User.remoteMethod(
'check',
{
http: {path: '/check', verb: 'post'},
returns: {arg: 'rate', type: 'object'},
accepts: [
{
arg: 'user_id',
type: 'number',
required: true,
description: "id of the user to check",
http: function getUserid(ctx) {
console.log('User.check http body : ', ctx.req.body);
return ctx.req.body.user_id;
}
}
],
description: ''
}
);
问题是我的 arg 函数 'getUserid' 在 'User.beforeRemote' 调用之前被触发。
这是一个错误吗?你知道我该怎么做吗? 我不想使用
arg : {http : {source : 'body'}},
因为我只想在远程方法中使用 user_id arg,而且我必须在大约 20~30 个现有方法中这样做
谢谢!
我终于找到了一种更简单的方法: 我在中间件中添加了我的令牌解码,它工作正常,具有经典的 arg 类型编号,没有 http 功能:
//middleware dir :
module.exports = function (app) {
"use strict";
return function (req, res, next) {
//Custom token decoding code ....
//used req.body to show example with post requests :
req.body.user_id = parseInt(token.user_id);
console.log('token : ', token);
next();
};
};
//remote Method declaration, without need to add a beforeRemote method :
User.remoteMethod(
'check',
{
http: {path: '/check', verb: 'post'},
returns: {arg: 'rate', type: 'object'},
accepts: [
{
arg: 'user_id',
type: 'number',
required: true,
description: "id of the user to check"
}
],
description: ''
}
);