def filter[A]()

in app/controllers/PasskeyAuthFilter.scala [33:62]


  def filter[A](request: UserIdentityRequest[A]): Future[Option[Result]] =
    Future(
      apiResponse(
        for {
          challengeResponse <- PasskeyChallengeDB.loadChallenge(request.user)
          challenge <- PasskeyChallengeDB.extractChallenge(
            challengeResponse,
            request.user
          )
          authData <- extractAuthenticationData(request)
          credentialResponse <- PasskeyDB.loadCredential(
            request.user,
            authData.getCredentialId
          )
          credential <- PasskeyDB.extractCredential(
            credentialResponse,
            request.user
          )
          verifiedAuthData <- Passkey.verifiedAuthentication(
            host,
            challenge,
            authData,
            credential
          )
          _ <- PasskeyChallengeDB.delete(request.user)
          _ <- PasskeyDB.updateCounter(request.user, verifiedAuthData)
          _ = logger.info(
            s"Authenticated passkey for user ${request.user.username}"
          )
        } yield ()