set-cookie AWS без сервера - PullRequest
       11

set-cookie AWS без сервера

0 голосов
/ 03 ноября 2019

Цель: установить cookie из aws без сервера.

Я использую пользовательский поток аутентификации

domain: mydomain.com
current domain: dev.mydomain.com
login api (api gateway): account-api.mydomain.com

Вход в систему Lambda
функция входа в системуфактическая вызванная функция

Эта лямбда получает имя пользователя и пароль и создает / возвращает строку JWT & cookie, я удалил несоответствующую логику

* Прямо сейчас мой ответ содержит дополнительный материал дляпомогите мне отладить / выяснить, как сопоставить - я перенесу его, как только это успешно установит cookie

...
const handler = async event => {
  const jwtBody = {
    email: event.email,
    uuid: current_user_info.uuid.S,
    zipcode: current_user_info.zipcode.S,
  }

  var now = new Date();
  var time = now.getTime();
  var expireTime = time + (milliToHour*24*10);
  now.setTime(expireTime);

  var jwt = jsonwebtoken.sign(jwtBody, SMCData.secret, { algorithm: SMCData.alg, expiresIn: '1hr'});
  const cookieString = "token="+jwt+";expires=" + now.toUTCString() + ";secure;HttpOnly;"

  return {
    statusCode: 200,
    payload: {
      verified: current_user_info.verified.BOOL,
      jwt: jwt,
      cookie: cookieString
    }
  }
}

const login = middy(handler).use(cors({
  origins:[
    "https://dev.mydomain.com",
    "https://account-api.mydomain.com",
    "https://*.mydomain.com"
  ],
  credentials:true
}))

Текущий статус - почтальон

post_body = {
  "email": "valid_email@email.com",
  "password": "correct_password"
}

response_body = {
  "statusCode":200,
  "payload":{
    "verified":false,
    "jwt":"eyJh...KAQ",
    "cookie":"token=ey...KAQ;expires=Tue, 12 Nov 2019 22:10:32 GMT;secure;HttpOnly;"
  }
}

cookie также устанавливается: Postman correctly sets the cookie

Текущий статус - хром

Заголовки: Chrome Login Headers

post_body = {
  "email": "valid_email@email.com",
  "password": "correct_password"
}

response_body = {
  "statusCode":200,
  "payload":{
    "verified":false,
    "jwt":"eyJh...KAQ",
    "cookie":"token=ey...KAQ;expires=Tue, 12 Nov 2019 22:10:32 GMT;secure;HttpOnly;"
  }
}

cookie - это не установлено: Chrome does not have the cookie set

Конфигурация шлюза API CORS включен API Gateway Method Response API Gateway Integration Response * Я знаю, что я "должен" изменить значение отображения в ответе интеграции на шаблон отображения, но я хотел получить этоNGS работал, прежде чем я понял, как сделать это изменение.

1 Ответ

0 голосов
/ 03 ноября 2019

Помогает при правильной настройке сердечников в API Gateway. DOH!

Method Integration

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