Ejemplo n.º 1
0
    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!"));
        }
    }