Можно ли сделать так, чтобы RequestInterceptor прерывал сеанс на основе некоторой логики внутри RequestInterceptor?
У меня есть закодированная процедура, которая проверяет достоверность пользователя.Если проверка достоверности завершается неудачно, я хочу воспроизвести сообщение для пользователя и прервать сеанс.
Я вижу, что происходит то, что LaunchRequest все еще выполняется, хотя я пытаюсь убить сеанс в RequestInterceptor
Упрощенная версия выглядит следующим образом:
const Alexa = require('ask-sdk-core');
const requestInterceptor = {
var isUserOk = false;
if(!isUserOk){
process(handlerInput) {
return handlerInput.responseBuilder
.speak("You are inside the Request Interceptor")
.withShouldEndSession(true)
.getResponse();
}
}
}
const launchRequestHandler = {
canHandle(handlerInput) {
return (handlerInput.requestEnvelope.session.new &&
handlerInput.requestEnvelope.request.type === 'LaunchRequest');
},
handle(handlerInput) {
return handlerInput.responseBuilder
.speak("Hi, welcome to the test skill. What is your name?")
.reprompt("You did not respond. Please tell me your name")
.getResponse();
}
};
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
launchRequestHandler,
)
.addRequestInterceptors(
requestInterceptor
)
.lambda();
Может кто-нибудь сказать мне, возможно ли, чтобы логика в RequestInterceptor прервала сеанс и запретила запуск обработчика LaunchRequest?
Спасибо
-bc