public async Task <LoginMessage> Login([FromBody] string token) { var(status, user) = await _auth.Verify(token); switch (status) { case GoogleAuth.LoginStatus.BadAudience: return(LoginResult(403, "Invalid audience!")); case GoogleAuth.LoginStatus.BadDomain: return(LoginResult(403, "Invalid GSuite domain!")); case GoogleAuth.LoginStatus.BadIssuer: return(LoginResult(403, "Invalid issuer!")); case GoogleAuth.LoginStatus.Banned: return(LoginResult(403, "Account has been banned!")); case GoogleAuth.LoginStatus.ExpiredToken: return(LoginResult(403, "Token is expired!")); case GoogleAuth.LoginStatus.Invalid: return(LoginResult(400, "Invalid token!")); case GoogleAuth.LoginStatus.Success: await Login(user); return(LoginResult(200)); default: return(LoginResult(400, "Invalid data!")); } }