1
Je suis en train de composer une authentification de base avec une autre action:la version Async de AuthenticatedBuilder en jeu 2
def findByNameSecure(username: String) = Authenticated { _ =>
val cursor: Cursor[JsObject] = persons.
find(Json.obj("userdetails.username" -> username)).
cursor[JsObject](ReadPreference.primary)
val res = cursor.collect[List]().map { persons =>
Ok(Json.toJson(persons))
} .recover {
case _ => BadRequest(Json.parse("{'error': 'failed to read from db'}"))
}
Await.result(res, 10.seconds)
}
Route:
GET /secure/user/findbyname controllers.UserController.findByNameSecure(username: String)
Cela fonctionne comme prévu. Ce qui est dérangeant, c'est que j'ai utilisé Await.result
qui bloque. Comment puis-je composer une version asynchrone de ce type d'authentification? J'utilise jouer 2.4.
Pourquoi vous ne pas écrire simple exemple de votre code que tout le monde peut compiler et peut-être courir? Avez-vous essayé - 'def findByNameSecure (nom d'utilisateur: String) = Authenticated.async {_ =>' – EnverOsmanov
Désolé, je ne suis pas en mesure de montrer l'ensemble du projet. 'Authenticated.async' fonctionne bien. Merci! Je serais heureux de l'accepter si vous pouviez l'écrire comme une réponse. – qed
Votre logique métier n'est pas connectée à une question, vous pouvez donc simplement la supprimer. Exemple: https://scastie.scala-lang.org/3821 Aussi simple que vous écrivez autant d'aide que vous obtiendrez. – EnverOsmanov