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)); }
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); }
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 }); }
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); }
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))); }