コード例 #1
0
        public User Authentificate(Authentification auth)
        {
            User result = null;
            User user   = FindUserByEmail(auth.Email);

            if (user != null)
            {
                HashPassword hashPassword = new HashPassword();
                if (user.Password == hashPassword.HashedPass(auth.Password))
                {
                    var key      = Encoding.ASCII.GetBytes(_appsettings.Secret);
                    var jwtToken = new SecurityTokenDescriptor {
                        Subject = new ClaimsIdentity(new Claim[] {
                            new Claim(ClaimTypes.Name, user.Id.ToString()),
                            new Claim(ClaimTypes.Role, user.Role)
                        }),
                        Expires            = DateTime.UtcNow.AddDays(2),
                        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
                    };
                    var tokenHandler = new JwtSecurityTokenHandler();
                    var token        = tokenHandler.CreateToken(jwtToken);
                    user.Token = tokenHandler.WriteToken(token);

                    result = user;
                }
            }
            return(result);
        }
コード例 #2
0
        public User Register(User user)
        {
            User result = null;

            if (FindUserByEmail(user.Email) == null)
            {
                var hashPassword = new HashPassword();
                user.Password = hashPassword.HashedPass(user.Password);
                _users.InsertOne(new User(user));
                result = FindUserByEmail(user.Email);
            }
            return(result);
        }