private ObjectToken GenerateToken(IUserAuthenticate user) { ClaimsIdentity identity = new ClaimsIdentity( new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim("AccessLogged", user.Access), new Claim("UserProfileLogged", user.UserProfile.GetHashCode().ToString()), new Claim("EnterpriseIdLogged", user.EnterpriseId.ToString()) } ); DateTime dataCriacao = DateTime.Now; DateTime dataExpiracao = dataCriacao + TimeSpan.FromSeconds(_tokenConfigurations.Seconds); // Calcula o tempo máximo de validade do refresh token // (o mesmo será invalidado automaticamente pelo Redis) TimeSpan finalExpiration = TimeSpan.FromSeconds(_tokenConfigurations.FinalExpiration); var handler = new JwtSecurityTokenHandler(); var securityToken = handler.CreateToken(new SecurityTokenDescriptor { Issuer = _tokenConfigurations.Issuer, Audience = _tokenConfigurations.Audience, SigningCredentials = _signingConfigurations.SigningCredentials, Subject = identity, NotBefore = dataCriacao, Expires = dataExpiracao }); var token = handler.WriteToken(securityToken); var resultado = new ObjectToken() { authenticated = true, created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"), expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"), accessToken = token, refreshToken = Guid.NewGuid().ToString().Replace("-", String.Empty), message = "OK" }; // Armazena o refresh token em cache através do Redis var refreshTokenData = new RefreshTokenData(); refreshTokenData.RefreshToken = resultado.refreshToken; refreshTokenData.Access = user.Access; DistributedCacheEntryOptions opcoesCache = new DistributedCacheEntryOptions(); opcoesCache.SetAbsoluteExpiration(finalExpiration); opcoesCache.AbsoluteExpiration = DateTime.Now.Add(finalExpiration); opcoesCache.SlidingExpiration = finalExpiration; _cache.SetString(resultado.refreshToken, JsonConvert.SerializeObject(refreshTokenData), opcoesCache); return(resultado); }
/// <summary> /// </summary> /// <param name="userAuthenticate"> </param> /// <exception cref="ArgumentNullException"></exception> public CasClient(IUserAuthenticate userAuthenticate) { if (userAuthenticate == null) { throw new ArgumentNullException("userAuthenticate"); } UserAuthenticateManager.Provider = userAuthenticate; }
public BasicAuthenticationHandler( IOptionsMonitor <AuthenticationSchemeOptions> options, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock, IUserAuthenticate userAuthenticate) : base(options, logger, encoder, clock) { _userAuthenticate = userAuthenticate; }
public UserService(CashDBContext context, ILogger <BackgroundService> logger, IServiceScopeFactory scopeFactory, IMailService mailService, IUserAuthenticate userAuthenticate) { _context = context; _logger = logger; _scopeFactory = scopeFactory; _mailService = mailService; _userAuthenticate = userAuthenticate; }
public AccountController(IUserAuthenticate userAuthenticate) { _userAuthenticate = userAuthenticate; }
public AccountController() { userAuthenticate = new FormUserAuthenticate(); this.casClient = new CasClient(userAuthenticate); }