public ObjetoResposta GetRh([FromServices] ChaveConfiguracao chaveConfig,
                                    [FromServices] TokenConfiguracao tokenConfigurations)
        {
            var usuario = new Usuario()
            {
                Id    = 2,
                Nome  = "Gabriel 2",
                Email = "*****@*****.**",
                Grupo = "RH",
                Senha = "123"
            };

            return(new Autenticacao().ConstroiJwt(usuario, chaveConfig, tokenConfigurations));
        }
        public ObjetoResposta GetDev([FromServices] ChaveConfiguracao chaveConfig,
                                     [FromServices] TokenConfiguracao tokenConfigurations)
        {
            var usuario = new Usuario()
            {
                Id    = 3,
                Nome  = "Gabriel 3",
                Email = "*****@*****.**",
                Grupo = "Desenvolvedor",
                Senha = "123"
            };

            return(new Autenticacao().ConstroiJwt(usuario, chaveConfig, tokenConfigurations));
        }
Exemplo n.º 3
0
        // This method gets called by the runtime. Use this method to add services to the                                                                                                                                                                                                                                                                                                                                                                                                    container.
        public void ConfigureServices(IServiceCollection services)
        {
            var chaveConfig = new ChaveConfiguracao();

            services.AddSingleton <IChaveConfiguracao>(chaveConfig);

            var tokenConfig = new TokenConfiguration();

            Configuration.GetSection(nameof(TokenConfiguration)).Bind(tokenConfig);
            services.AddSingleton <ITokenConfiguration>(tokenConfig);

            services.AddTransient <IAutenticacao, Autenticacao>();

            services.AddAuthentication(authOptions =>
            {
                authOptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                authOptions.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(bearerOptions =>
            {
                var paramsValidation = bearerOptions.TokenValidationParameters;
                paramsValidation.IssuerSigningKey         = chaveConfig.Key;
                paramsValidation.ValidAudience            = tokenConfig.Audience;
                paramsValidation.ValidIssuer              = tokenConfig.Issuer;
                paramsValidation.ValidateIssuerSigningKey = true;
                paramsValidation.ValidateLifetime         = true;
                paramsValidation.ClockSkew = TimeSpan.Zero;
            });

            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser().Build());
            });

            services.AddMvc();
        }