Beispiel #1
0
        public string authenticate(LoginForm form)
        {
            string token = "";

            hashingService.HashPassword(form.password);
            var user = users.FirstOrDefault(s => {
                return(s.username == form.username && hashingService.CheckPassword(form.password, s.password));
            });

            if (user != null)
            {
                var tokenParser     = new JwtSecurityTokenHandler();
                var key             = Encoding.ASCII.GetBytes("this-is-f*****g-long-secret-key-dudeee");
                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject = new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Name, user.id.ToString()),
                        new Claim(ClaimTypes.Role, user.role.name)
                    }),
                    Expires            = DateTime.UtcNow.AddDays(7),
                    SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
                };
                var tokenCreated = tokenParser.CreateToken(tokenDescriptor);
                token = tokenParser.WriteToken(tokenCreated);
            }
            return(token);
        }