public override async Task <RequestResult <AuthorizationData> > Handle(LoginUserWithCredentialsCommand request, CancellationToken cancellationToken) { var user = await _authRepository.GetUserByCredentials(request.Email, request.Password, request.RequestContext.Tenant.TenantId); if (user == null) { return(RequestResult <AuthorizationData> .Failure(ErrorCode.UserNotFound, new { email = request.Email, tenantCode = request.RequestContext.Tenant.TenantCode })); } var settings = await _tenantsRepository.GetTenantSettings(request.RequestContext.Tenant.TenantId); if (settings == null) { return(RequestResult <AuthorizationData> .Failure(ErrorCode.TenantSettingsNotFound, new { tenantCode = request.RequestContext.Tenant.TenantCode })); } var token = _jwtTokenFactory.Create(user, settings, request.RequestContext.Tenant.TenantCode); return(RequestResult <AuthorizationData> .Success(new AuthorizationData { Token = token, User = _mapper.Map <UserDto>(user) })); }
private async Task <AuthorizationData> GetAuthorizationData(TenantContext requestTenant, TenantUser user) { var tenantSettings = await _tenantsRepository.GetTenantSettings(requestTenant.TenantId); var token = _jwtTokenFactory.Create(user, tenantSettings, requestTenant.TenantCode); return(new AuthorizationData { Token = token, User = _mapper.Map <UserDto>(user), }); }
public TenantSettings GetTenantSettings(string tenantCode) { var result = _cache.GetOrCreate($"{CacheConstants.TenantSettingsCachePrefix}{tenantCode}", (ce) => { ce.SlidingExpiration = TimeSpan.FromSeconds(15); ce.AbsoluteExpiration = DateTime.Now.AddMinutes(5); var settings = _tenantsRepository.GetTenantSettings(tenantCode); return(settings); }); return(result); }