-
Notifications
You must be signed in to change notification settings - Fork 0
WebApiTreinoGO!
Essa é uma pequena aplicação do Tipo Web API, que incorpora as tecnologia RESTFul e autenticação Bearer Token.
Com ela é possível subir um serviço, que proverá conexão com diversas aplicações Web a um back-office corporativo. Meu objetivo foi desenvolver uma aplicação de sustentação ao Web API com autenticação via Bearer Token, para funcionar de camada intermediária ao TOTVS Protheus, mas que pode ser utilizada com outras aplicações ou de forma independente.
É fazer o TOKEN funcionar de forma correta e sem gambiarras. Para isso vamos ter que criar duas classes e instalar alguns frameworks.
No VS (Visual Estúdio) crie um novo projeto do tipo Web Api, sem autenticação. Após a criação do projeto a primeira coisa a se fazer, é atualizar os pacotes defauts já instalados através do Nuget Package Manager, feito isso instale os pacotes abaixo:
- Install-Package Microsoft.AspNet.WebApi.Owin
- Install-Package Microsoft.Owin.Host.SystemWeb
- Install-Package Microsoft.Owin.Security.OAuth
- Install-Package Microsoft.Owin.Cors
Quando o app sobe, o primeiro lugar por onde ele vai passar é pelo WebApiConfig.cs. Aqui será montado a rota para o Api/{Controller}/id, logo todo o controller que você criar e estender a classe ApiController se tornará uma parte da API, exemplo: ValuesController.cs
O que temos que fazer é resgatar a configuração do WebApi, através do HttpConfiguration em nossa classe Startup.Auth.cs, após isso configurar e habilitar o Token, dentro da API.
Para habilitar o Token, vamos precisar de um OAuthAuthorizationServerOptions e dentro dele vamos falar que é que vai providenciar o Token, ou seja, quem é o nosso Provider.
Basicamente assim:
`
//Habilita o Cors
app.UseCors(CorsOptions.AllowAll);
//Resgata a Configuração do WebApi
HttpConfiguration config = new HttpConfiguration();
//Faz a configuração da Aplicação com o Token
ConfigureToken(app);
//Configurações Extras ao app
ConfigureOAuth(app);
//Habilita o WebAPi
app.UseWebApi(config);`
Dentro do ConfigureToken() fazemos a configuração do Token, de tal forma que fique como abaixo:
`
/// <summary>
/// Configures the token.
/// </summary>
/// <param name="app">The application.</param>
public void ConfigureToken(IAppBuilder app)
{
OAuthOptions = new OAuthAuthorizationServerOptions();
//Configuração
OAuthOptions.AllowInsecureHttp = true;
OAuthOptions.TokenEndpointPath = new PathString("/Token");
OAuthOptions.AccessTokenExpireTimeSpan = TimeSpan.FromHours(1);
OAuthOptions.Provider = new ProviderToken(); //Provider da aplicação
//Ativação
app.UseOAuthAuthorizationServer(OAuthOptions);
// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
//Ativa o Bearer Token
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}`
Feito tudo isso, é a hora de configurar o provider. É nele que faremos a leitura do request e aceitaremos a conexão ou não. Nesse ponto é o momento que podemos validar o usuário e senha se ele existe ou não, para retornar o Token