Перенаправить пользователя на домашнюю страницу после входа в систему - PullRequest
0 голосов
/ 13 ноября 2018

Я создаю веб-портал.JavaScript, который отображает домашнюю страницу веб-портала, является чувствительным и должен отображаться только для аутентифицированных пользователей.

В настоящее время у меня есть два HTML-файла: login.html и homepage.html

Когда кто-то перемещаетсяк моему приложению на portal.com/homepage, он перенаправляет пользователя на portal.com/login

. Чтобы вызвать перенаправление, я использую lambda.

Как только пользователь вошел в системуЯ хочу перенаправить их на portal.com/homepage.

Однако с текущими заголовками, которые передаются в лямбду через API-шлюз, у меня нет способа аутентификации пользователя, и поэтому я не могу знать,пользователь вошел в систему.

Я хотел бы знать, как перенаправить моего пользователя на домашнюю страницу и переслать информацию о сеансе в лямбду, чтобы моя лямбда могла аутентифицировать пользователя и возвращать html, а не перенаправлять в логинpage.

Вызов API с клиентской стороны JavaScript просто возвращает html-файл в переменную, которая вызвалаэто вместо того, чтобы открывать его на новой странице.

Ниже приведены мои лямбды:

  exports.login = (event, context, callback) => {

  const poolId = ** value that tells me a user is authenticated **

  let contents = ""
  let result = {}

  if (poolId) {
    result = {
      statusCode:302,
      headers: {
        poolId,
        "Location": "https://portal.com/homepage"
      },
    }
  } else {
    contents = fs.readFileSync(`app/login.html`);
    result = {
      statusCode: 200,
      body: contents.toString(),
      headers: {'content-type': 'text/html'}
    };
  }

  callback(null, result);
};

exports.hoempage = (event, context, callback) => {

  const poolId = ** value that tells me my user is authenticated**

  let result = {}
  let contents = ""
  if (poolId) {

    contents = fs.readFileSync(`app/homepage.html`);

    result = {
      statusCode: 200,
      body: JSON.stringify([event, context]),
      headers: {'content-type': 'text/html'}
    }

  } else {
    result = {
      statusCode:302,
      headers: {
        "Location": "https://portal.com/login"
      }
    }

  }

  callback(null, result)
}

Заранее спасибо

1 Ответ

0 голосов
/ 13 ноября 2018

на сервере вы можете отправить свой токен jwt, проверить токен, если сессия истекла, перенаправить пользователя на страницу входа, иначе он будет зависать в вашей системе. Ниже приведен механизм проверки токена.

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-verifying-a-jwt.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...