Хорошо, я делюсь здесь своими фондами, так что, надеюсь, это поможет другим. При копании в силуэтном коде я обнаружил, что мы можем легко настроить, из какой части (частей) запроса (заголовок, строка запроса, ...) мы хотим прочитать токен. По умолчанию токен jwt считывается из заголовка X-Auth-Token
, но мы можем настроить JWTAuthenticator
для чтения токена также из переменной строки запроса:
val config =
configuration.underlying
.as[JWTAuthenticatorSettings]("silhouette.authenticator")
// this is the important line of code
.copy(requestParts = Some(Seq(RequestPart.Headers, RequestPart.QueryString)))
new JWTAuthenticatorService(config, None, encoder, idGenerator, clock)
Теперь, если вы хотите использовать защищенный ресурс за контроллером с silhouette.SecureAction
, тогда вам просто нужно добавить X-Auth-Token
в качестве параметра строки запроса к URL:
.my-class {
background-image: url("/image?X-Auth-Token=........")
}