Pular para o conteúdo principal

Exemplo de implementação

Os exemplos apresentados são maneiras básicas de se realizar o login com o Acesso Cidadão. Cada desenvolvedor deve escrever seu código da maneira que lhe convir mas respeitando a segurança e integridade de suas aplicações, bem como a do Acesso Cidadão.

O exemplo disponibilizado é escrito utilizando DotNet Framework. Conforme outras linguagens sejam aplicadas serão inclusas nesta página.

C# e DOTNET

Exemplo em .NET de Classe que realiza Encode e Decode do Client ID e do Client Secret
    public static class ExtensionMethods
{
public static string EncodeBase64(this string value)
{
var valueBytes = Encoding.UTF8.GetBytes(value);
return Convert.ToBase64String(valueBytes);
}

public static string DecodeBase64(this string value)
{
var valueBytes = System.Convert.FromBase64String(value);
return Encoding.UTF8.GetString(valueBytes);
}
}
Exemplo de código em .NET da requisição POST
    private static async Task Main()
{
var client = new HttpClient();

// requisitar token via POST
var base64EncodedString = "client:secret".EncodeBase64();

var nvc = new List<KeyValuePair<string, string>>();
nvc.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
nvc.Add(new KeyValuePair<string, string>("scope", "api1"));

var data = new FormUrlEncodedContent(nvc);

var url = "https://acessocidadao.es.gov.br/is/connect/token";

var postClient = new HttpClient();
postClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic", base64EncodedString);

var postResponse = await postClient.PostAsync(url, data);

string result = postResponse.Content.ReadAsStringAsync().Result;

dynamic parseado = JObject.Parse(result);

//Chamar a API
var apiClient = new HttpClient();
apiClient.SetBearerToken((string)parseado.access_token);

var response = await apiClient.GetAsync("**URL DA API**");

if (!response.IsSuccessStatusCode)
{
Console.WriteLine(response.StatusCode);
}
else
{
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(JArray.Parse(content));
}

Console.ReadKey();
}