예제 #1
0
        private async Task <TenantProviderSettings> GetTenantProviderSettings(TenantContext tenant)
        {
            var providerSettings = await _providerSettingsRepository
                                   .GetProviderSettings(tenant.TenantId, AuthProviderType.Facebook);

            if (providerSettings == null)
            {
                throw new DomainException(ErrorCode.TenantProviderSettingsNotFound,
                                          new { tenantCode = tenant.TenantCode, providerType = AuthProviderType.Facebook });
            }

            return(providerSettings);
        }
예제 #2
0
        private async Task <(bool hasError, RequestResult <AuthorizationData> result)> ValidateTokenWithProviderSettings(TokenInfo tokenInfo, TenantContext tenant)
        {
            var providerSettings = await _providerSettingsRepository
                                   .GetProviderSettings(tenant.TenantId, AuthProviderType.Google);

            if (providerSettings == null)
            {
                var result = RequestResult <AuthorizationData>
                             .Failure(ErrorCode.TenantProviderSettingsNotFound,
                                      new { tenantCode = tenant.TenantCode, providerType = AuthProviderType.Google });

                return(true, result);
            }
            if (tokenInfo == null || tokenInfo.ClientId != providerSettings.Identifier)
            {
                var result = RequestResult <AuthorizationData>
                             .Failure(ErrorCode.InvalidProviderToken,
                                      new { tenantCode = tenant.TenantCode, providerType = AuthProviderType.Google });

                return(true, result);
            }

            return(false, null);
        }