in play-v30/src/main/scala/com/gu/googleauth/actions.scala [123:142]
def checkIdentity()(implicit request: RequestHeader, ec: ExecutionContext): EitherT[Future, Result, UserIdentity] = {
def logWarn(desc:String, e: Throwable): Unit = {
logger.warn(s"${getClass.getSimpleName} : failed-oauth-callback : $desc : '${e.getMessage}'", e)
}
GoogleAuth.validatedUserIdentity(authConfig).attemptT.leftSemiflatMap {
case expiredJwt: ExpiredJwtException =>
logWarn("resend-user-with-expired-anti-forgery-token-to-google", expiredJwt)
startGoogleLogin()
case e =>
val desc = e match {
case _: IllegalArgumentException => "anti-forgery-token-invalid"
case _: Throwable => e.getClass.getSimpleName
}
logWarn(desc, e)
Future.successful(redirectWithError(failureRedirectTarget, "Internal error, please check the logs for more information"))
}.flatMap { userIdentity =>
authConfig.twoFactorAuthChecker.map(requireTwoFactorAuthFor(userIdentity)).getOrElse(EitherT.pure(userIdentity))
}
}