Шаблон активатора для воспроизведения-силуэта-отдыха дает хорошее example как использовать аутентификацию REST/зарегистрироваться с помощью HeaderAuthenticator. Получение знака в запросе он создает пользователя и возвращает маркер в обоих теле ответа и заголовкаДостижение JWT-токена в play2-силуэте JWTAuthenticator
val response = Ok(Json.toJson(Token(token = authenticator.id, expiresOn = authenticator.expirationDate)))
env.authenticatorService.init(authenticator, Future.successful(response))
В этом примере я получаю те же лексемы в теле (инициализации на первой линии) и в заголовках (инициализируется на второй линии) ,
Желая использовать JWTAuthenticator, я изменил код, чтобы использовать его вместо этого (код тот же, только одно отличие - код инъекции зависимостей), поэтому я ожидал такого же внешнего вида.
Но с помощью аутентификатора JWTAuthenticator authenticator.id дает мне еще один сгенерированный идентификатор (основанный на том, какой настоящий веб-маркер JSON генерируется позже), а JNON Web Token записывается только в заголовке, во второй строке кода.
Я готов вернуть реальный токен json в тело ответа, но не хочу читать заголовки после того, как я написал в них тем же методом.
Есть ли решение?
Спасибо за ответ. В этом вопросе я не хочу архивировать изменение таймаута истечения срока действия, но я хочу получить JSON Web Token сразу после его создания без беспорядка с объектом request.headers. –
А, я вижу твою проблему. Я обновил ответ. – akkie
Вот что я делаю прямо сейчас, чтобы решить эту проблему. Было бы здорово иметь более удобный способ. Для тех, кто бродил по этому вопросу - взгляните на вопрос github выше. –