Перенаправление после успешного или неудачного входа в систему в петлевой среде

Недавно я начал с петлевого фреймворка и сделал простую функцию входа в систему, создав модель «клиент», унаследованную от базового «пользователя», например:

CUSTOMER.JSON

{
    "name": "customer",
    "base": "User",
    "idInjection": true,
    "properties": {
        "email":{
            "type":"string",
            "required":false
        },
        "username":{
            "type":"string",
            "required":false
        }

    },
    "validations": [],
    "relations": {},
    "acls": [],
    "methods": []
}

CUSTOMER.JS

module.exports = function(customer){

  }

Затем я сделал запись в model-config.json следующим образом:

"customer": {
        "dataSource": "mango-database",
        "public": true
    }

И да, я мог легко входить и выходить из системы. У меня есть экран входа в систему с полями имени пользователя и пароля. Я отправляю эту форму клиентам / логину, и как только он получает логин, я получаю экран:

{
id: "lvrTjKBKXCFPTMFej6AyegQUFYe5mSc1BiYbROZwCBM0jqae7kZ7v8ZfGujfDGgy",
ttl: 1209600,
created: "2014-12-07T08:12:17.572Z",
userId: "5483e88b5e9cf2fe0c64dd6c"
}

Теперь я хочу, чтобы вместо этого экрана я мог перенаправить пользователя на какую-либо другую страницу (панель управления), и в случае сбоя входа в систему он должен вернуться на экран входа в систему.

Я много искал в Google по этому поводу, и все, что я нашел, это предложения по использованию хуков. Но у крючков такого события нет. Где мне написать функцию перенаправления? Я предполагаю, что CUSTOMER.JS

Я нашел документацию немного запутанной!


person beNerd    schedule 07.12.2014    source источник


Ответы (1)


Используйте context.res, указанный в удаленной ловушке. Например:

Customer.afterRemote('create', function(context, customer, next) {
  var res = context.res; //this is the same response object you get in Express
  res.send('hello world');
})

По сути, у вас есть доступ к объектам запросов и ответов, поэтому просто отвечайте, как в Express. См. http://expressjs.com/4x/api.html для получения дополнительной информации.

person superkhau    schedule 08.12.2014
comment
Но будет ли это поддерживать мою сессию? Предположим, я делаю res.render ('dasbhboard.hbs') - person beNerd; 08.12.2014
comment
Я не совсем понимаю, что вы имеете в виду под maintain your session. Это необходимо только для доступа к объектам запроса и ответа. Управление сеансом зависит от вас. - person superkhau; 08.12.2014