Ejemplo n.º 1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddScoped <IAuthProvider, AuthProvider>();
            services.AddScoped <ITransactionProvider, TransactionProvider>();
            services.AddScoped <IPlayerProvider, PlayerProvider>();
            services.AddScoped <ISessionProvider, SessionProvider>();
            services.AddScoped <IMessageProvider, MessageProvider>();

            services.AddCors();
            services.AddMvc(option => option.EnableEndpointRouting = false);

            services.AddAuthentication(x =>
            {
                x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                x.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(x =>
            {
                x.RequireHttpsMetadata      = false;
                x.SaveToken                 = true;
                x.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(ConnectionUtility.GetSharedSecret())),
                    ValidateIssuer           = false,
                    ValidateAudience         = false
                };
            });
        }
Ejemplo n.º 2
0
        public AuthResponse Authenticate(string user, string password)
        {
            var userData = new UsersRepo().GetUser(user.Trim());

            var goodPassword = PasswordUtility.VerfiyHash(userData.PasswordHash, password.Trim());

            if (goodPassword)
            {
                var tokenHandler    = new JwtSecurityTokenHandler();
                var tokenIssueDate  = DateTime.Now;
                var tokenExpiration = DateTime.Now.AddHours(12);

                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new List <Claim> {
                        new Claim("User", user.Trim().ToLower()), new Claim("UserId", userData.UserId), new Claim("Email", userData.Email)
                    }),
                    Expires = tokenExpiration,
                    //TODO: Get this out of a config or DB
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.ASCII.GetBytes(ConnectionUtility.GetSharedSecret())), SecurityAlgorithms.HmacSha256Signature)
                };

                var token = tokenHandler.CreateToken(tokenDescriptor);

                return(new AuthResponse
                {
                    Authenticated = true,
                    Username = user,
                    AccessToken = tokenHandler.WriteToken(token),
                    TokenIssueDate = tokenIssueDate,
                    TokenExpirationDate = tokenExpiration
                });
            }
            else
            {
                return(new AuthResponse {
                    Authenticated = false, Username = user
                });
            }
        }