public Task <OAuth20Result> HandleAsync(AccessTokenRequestMessage message) { if (VerifyAccessTokenRequest(message.ClientId, message.ClientSecret, message.Code, message.RedirectUri)) { GoToState(OAuth20State.Finished); var result = AccessTokenResult(); result.RedirectUri = _redirectUri; return(Task.FromResult(result)); } return(Task.FromResult(CurrentStateResult())); }
public async Task <IActionResult> Token([FromBody] AuthorizationCodeGrantRequestModel model) { if ("authorization_code".Equals(model.GrantType, StringComparison.OrdinalIgnoreCase)) { var message = new AccessTokenRequestMessage(model.Code) { ClientId = model.ClientId, ClientSecret = model.ClientSecret, Code = model.Code, RedirectUri = model.ClientSecret }; var result = await _sagaBus.SendAsync <AccessTokenRequestMessage, OAuth20Result>(message); switch (result.State) { case OAuth20State.AuthorizationCodeGenerated: return(BadRequest()); case OAuth20State.Finished: return(Ok(TokenResponseModel.FromOAuth20Result(result))); } } return(BadRequest()); }
public bool ShouldHandle(AccessTokenRequestMessage message) => _state == OAuth20State.AuthorizationCodeGenerated && message.SagaId == Id;
public async Task<IActionResult> Token([FromBody]AuthorizationCodeGrantRequestModel model) { if ("authorization_code".Equals(model.GrantType, StringComparison.OrdinalIgnoreCase)) { var message = new AccessTokenRequestMessage(model.Code) { ClientId = model.ClientId, ClientSecret = model.ClientSecret, Code = model.Code }; var result = await _sagaBus.SendAsync<AccessTokenRequestMessage, OAuth20Result>(message); switch (result.State) { case OAuth20State.AuthorizationCodeGenerated: return BadRequest(); case OAuth20State.Finished: return Ok(TokenResponseModel.FromOAuth20Result(result)); } } return BadRequest(); }