Exemple #1
0
        public IDataResult <AccessToken> CreateAccessToken(UserForJwt userForJwt)
        {
            var claims      = _userForJwtService.GetClaims(userForJwt);
            var accessToken = _tokenHelper.CreateToken(userForJwt, claims.Data);

            return(new SuccessDataResult <AccessToken>(accessToken, Messages.AccessTokenCreated));
        }
Exemple #2
0
        private IEnumerable <Claim> SetClaims(UserForJwt userForJwt, List <OperationClaim> operationClaims)
        {
            var claims = new List <Claim>();

            claims.AddNameIdentifier(userForJwt.Id.ToString());
            claims.AddEmail(userForJwt.Email);
            claims.AddName($"{userForJwt.FirstName} {userForJwt.LastName}");
            claims.AddRoles(operationClaims.Select(c => c.Name).ToArray());
            return(claims);
        }
Exemple #3
0
        public AccessToken CreateToken(UserForJwt userForJwt, List <OperationClaim> operationClaims)
        {
            var securityKey        = SecurityKeyHelper.CreateSecurityKey(_tokenOptions.SecurityKey);
            var signingCredentials = SigningCredentialsHelper.CreateSigningCredentials(securityKey);
            var jwt = CreateJwtSecurityToken(_tokenOptions, userForJwt, signingCredentials, operationClaims);
            var jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
            var token = jwtSecurityTokenHandler.WriteToken(jwt);

            return(new AccessToken
            {
                Token = token,
                Expiration = _accesTokenExpiration
            });
        }
Exemple #4
0
        public JwtSecurityToken CreateJwtSecurityToken(
            TokenOptions tokenOptions, UserForJwt userForJwt, SigningCredentials signingCredentials,
            List <OperationClaim> operationClaims)
        {
            var jwt = new JwtSecurityToken(
                issuer: tokenOptions.Issuer,
                audience: tokenOptions.Audience,
                expires: _accesTokenExpiration,
                notBefore: DateTime.Now,
                claims: SetClaims(userForJwt, operationClaims),
                signingCredentials: signingCredentials
                );

            return(jwt);
        }
Exemple #5
0
        public IDataResult <UserForJwt> Register(UserForRegisterDto userForRegisterDto, string password)
        {
            byte[] passwordHash, passwordSalt;
            HashingHelper.CreatePasswordHash(password, out passwordHash, out passwordSalt);
            var user = new UserForJwt
            {
                Email        = userForRegisterDto.Email,
                FirstName    = userForRegisterDto.FirstName,
                LastName     = userForRegisterDto.LastName,
                PasswordHash = passwordHash,
                PasswordSalt = passwordSalt,
                Status       = true
            };

            _userForJwtService.Add(user);
            return(new SuccessDataResult <UserForJwt>(user, Messages.UserRegistered));
        }
 public IResult Add(UserForJwt userForJwt)
 {
     _userForJwtDal.Add(userForJwt);
     return(new SuccessResult());
 }
 public IDataResult <List <OperationClaim> > GetClaims(UserForJwt userForJwt)
 {
     return(new SuccessDataResult <List <OperationClaim> >(_userForJwtDal.GetClaims(userForJwt)));
 }