Лямбда Python HTTP Auth Popup - PullRequest
       3

Лямбда Python HTTP Auth Popup

0 голосов
/ 11 марта 2020

У меня есть несколько stati c веб-сайтов на AWS S3 Bucket, и я настроил Cloudfront для запуска Lambda для управления аутентификацией пользователей. Я нашел шаблон Node.js, который создает всплывающее окно проверки подлинности Basi c HTTP, однако я не знаком с Node.js, и мне нужно создать поток, чтобы пользователи могли получать доступ только к тому, что им нужно.

enter image description here

Глядя на код Node.js, я предполагаю, что функция Buffer создает всплывающее окно:

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

  const request = event.Records[0].cf.request;
  const headers = request.headers;

  const user = 'user';
  const pw = 'password';
  const authString = 'Basic ' + new Buffer(user + ':' + pw).toString('base64');

  if (typeof headers.authorization == 'undefined' || headers.authorization[0].value != authString) {
    const response = {
      status: '401',
      statusDescription: 'Unauthorized',
      body: 'Unauthorized',
      headers: {
        'www-authenticate': [{key: 'WWW-Authenticate', value:'Basic'}]
      },
    };
    callback(null, response);
  }
  callback(null, request);
};

Я искал везде, и я нашел только Node.js примеров для того, что мне нужно, есть ли подобная функция или способ воспроизвести это Basi c HTTP Auth Popup на Python, которое могло бы работать на Lambda + CloudFront?

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

...