I have a web api using an Identity 4 server. I don’t know where to start writing an integration test. I have a login controller with a username and password that is used for the ResourceOwnerPassword Grant type. Below is my code.
controller.
[Route("Authentication/Login")]
public async Task<IActionResult> WebApiLogin(string username, string password)
{
var accessToken = await UserAccessToken.GenerateToken(username, password);
return new JsonResult(accessToken);
}
Class for creating a token
public async Task<string> GenerateToken(string username, string password)
{
var disco = await DiscoveryClient.GetAsync("http://localhost:5000");
var clientToken = new TokenClient(disco.TokenEndpoint, "client", "secret");
var tokenResponse = await clientToken.RequestResourceOwnerPasswordAsync(username, password, "IntegrapayAPI");
if (tokenResponse.IsError)
{
return tokenResponse.Error;
}
return tokenResponse.Json.ToString();
}
IdentityServer Project startup class.
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer()
.AddTemporarySigningCredential()
.AddInMemoryApiResources(Config.GetApiResources())
.AddInMemoryClients(Config.GetClients());
services.AddTransient<IResourceOwnerPasswordValidator, ResourceOwnerPasswordValidator>();
}
source
share