public IActionResult Index(RequestToken request) { ResponseToken token; if (string.IsNullOrEmpty(request.Client_Id)) { return(BadRequest(ResponseTokenError.InvalidRequest("client_id"))); } else if (string.IsNullOrEmpty(request.Client_Secret)) { return(BadRequest(ResponseTokenError.InvalidRequest("client_secret"))); } var clientCredentialsBase = _oAuth2ClientCredentialsBaseService.GetClientCredentialsBaseByClientId(request.Client_Id); if (clientCredentialsBase == null) { return(Unauthorized(ResponseTokenError.UnauthorizedClient("invalid client_id"))); } else if (clientCredentialsBase.ClientSecret != request.Client_Secret) { return(Unauthorized(ResponseTokenError.UnauthorizedClient("invalid client_secret"))); } token = TokenHelper.GenerateToken(clientCredentialsBase, _configuration["OAuth2Configuration:Key"], int.Parse(_configuration["OAuth2Configuration:Expires:ClientCredentials"]), _configuration["OAuth2Configuration:Issuer"], _configuration["OAuth2Configuration:Audience"]); return(Ok(token)); }
public IActionResult Index(RequestToken request) { ResponseToken token; if (string.IsNullOrEmpty(request.Username)) { return(BadRequest(ResponseTokenError.InvalidRequest("username"))); } else if (string.IsNullOrEmpty(request.Password)) { return(BadRequest(ResponseTokenError.InvalidRequest("password"))); } var passwordBase = _oAuth2PasswordBaseService.GetPasswordBaseByUsername(request.Username); if (passwordBase == null) { return(Unauthorized(ResponseTokenError.UnauthorizedClient("invalid username"))); } else if (passwordBase.Password != SHA512Helper.Crip(request.Password)) { return(Unauthorized(ResponseTokenError.UnauthorizedClient("invalid password"))); } token = TokenHelper.GenerateToken(passwordBase, _configuration["OAuth2Configuration:Key"], int.Parse(_configuration["OAuth2Configuration:Expires:Password"]), _configuration["OAuth2Configuration:Issuer"], _configuration["OAuth2Configuration:Audience"]); return(Ok(token)); }
private static Task HandleExceptionAsync(HttpContext context, Exception exception, IList <Func <Exception, ResponseTokenError> > custom, string genericMessage, string uri = null) { context.Response.ContentType = "application/json"; context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; string oauth2InternalExceptionMessage = GetUriException(exception); if (custom != null) { foreach (var item in custom) { var response = item(exception); if (response != null) { return(context.Response.WriteAsync(response.ToString())); } } } if (!string.IsNullOrEmpty(genericMessage)) { return(context.Response.WriteAsync(ResponseTokenError.ServerError(genericMessage, uri ?? GetUriException(exception)).ToString())); } return(context.Response.WriteAsync(ResponseTokenError.ServerError(exception, uri ?? oauth2InternalExceptionMessage).ToString())); }
public IActionResult Index(RequestToken request) { ResponseToken token = new ResponseToken(); if (string.IsNullOrEmpty(request.Device_Code)) { return(BadRequest(ResponseTokenError.InvalidRequest("device_code"))); } return(Ok(token)); }
public IActionResult Index(RequestToken request) { try { if (Request?.ContentType == "application/json") { using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8)) { request = JsonConvert.DeserializeObject <RequestToken>(reader.ReadToEnd()); } } if (string.IsNullOrEmpty(request.Grant_Type) || !grantTypes.Contains(request.Grant_Type)) { return(BadRequest(new ResponseTokenError("unsupported_grant_type", $"O grant_type '{request.Grant_Type ?? "null"}' não é suportado"))); } switch (request.Grant_Type) { case GrantType.AuthorizationCode: return(RedirectToAction("Index", "AuthorizationCode", request)); case GrantType.ClientCredentials: return(RedirectToAction("Index", "ClientCredentials", request)); case GrantType.DeviceCode: return(RedirectToAction("Index", "DeviceCode", request)); case GrantType.Password: return(RedirectToAction("Index", "Password", request)); case GrantType.RefreshToken: return(RedirectToAction("Index", "RefreshToken", request)); default: return(BadRequest(ResponseTokenError.UnsupportedGrantType(request.Grant_Type))); } }catch (Exception e) { _logger.LogError(e, "Request Error"); return(StatusCode(500, ResponseTokenError.ServerError(e))); } }
public IActionResult Index(RequestToken request) { if (string.IsNullOrEmpty(request.Code)) { return(BadRequest(ResponseTokenError.InvalidRequest("code"))); } else if (string.IsNullOrEmpty(request.Redirect_Uri)) { return(BadRequest(ResponseTokenError.InvalidRequest("redirect_url"))); } else if (string.IsNullOrEmpty(request.Client_Id)) { return(BadRequest(ResponseTokenError.InvalidRequest("client_id"))); } return(Ok()); }
public IActionResult Index(RequestToken request) { ResponseToken token; if (string.IsNullOrEmpty(request.Refresh_Token)) { return(BadRequest(ResponseTokenError.InvalidRequest("refresh_token"))); } var refreshTokenBase = _oAuth2RefreshTokenBaseService.GetRefreshTokenBaseByRefreshToken(request.Refresh_Token); if (refreshTokenBase == null) { return(Unauthorized(ResponseTokenError.UnauthorizedClient("invalid refresh_token"))); } token = TokenHelper.GenerateToken(refreshTokenBase, _configuration["OAuth2Configuration:Key"], int.Parse(_configuration["OAuth2Configuration:Expires:RefreshToken"]), _configuration["OAuth2Configuration:Issuer"], _configuration["OAuth2Configuration:Audience"]); return(Ok(token)); }