Авторизация пользователя с использованием пользовательского промежуточного программного обеспечения в loopback - PullRequest
0 голосов
/ 04 мая 2018

Я сделал VerifyUserAccess middleware в loopback как показано ниже:

module.exports = function(options) {
 return function storeCurrentUser(req, res, next) {
 if (!req.accessToken) {
  return next();
 }

app.models.UserModel.findById(req.accessToken.userId, function(err, user) {
  if (err) {
    return next(err);
  }
  if (!user) {
    return next(new Error('No user with this access token was found.'));
  }
  const LoopBackContext = require('loopback-context');
  const loopbackContext = LoopBackContext.getCurrentContext();
  if (loopbackContext) {
    loopbackContext.set('currentUser', user);
  }
  next();
});
};
};

А также я добавил его в middleware.json, как показано ниже:

 ...
  "initial": {
     "./middleware/verify_user_access": {},
  ...
   }
  ...

Но проблема в том, что всегда loopbackContext Я получил null.

И второй вопрос: как получить currentUser, чтобы получить API. Я сделал ниже:

  Gameversionandtype.GetGameversionandtypeByGameTypeID = (ctx, callback) => 
 {
    const LoopBackContext = require('loopback-context');
    const context = LoopBackContext.getCurrentContext();
    const currentUserResult = context && context.get('currentUserResult');
    console.log('currentUser.username: ', currentUserResult.id);
    ...
    ...
 }

И, пожалуйста, дайте мне знать, как установить currentUser результат и как его получить в API. Я также сослался на документацию loopback-context npm модуль, но я не могу найти какие-либо решения. Заранее благодарю.

...