Ошибка сценария OAuth 2 - PullRequest
       6

Ошибка сценария OAuth 2

0 голосов
/ 29 апреля 2018

Мое приложение - WPF, написанное на C # в VisualStudio 2017 с использованием Dropbox API v2.

Я пытаюсь получить AccessToken для Dropbox и следую коду OAuth 2 на сайте разработчика Dropbox: https://github.com/dropbox/dropbox-sdk-dotnet/tree/master/dropbox-sdk-dotnet/Examples/SimpleTest

Моя проблема в том, что я получаю сообщение об ошибке скрипта при загрузке страницы входа в Dropbox. Ошибка:

Строка: 0, символ: 0, ошибка: ошибка сценария, код: 0, URL: https://cfl.dropboxstatic.com/static/compiled/js/alameda_bundle/alameda_bundle.min-vflHAZfb_.js

Я уверен, что мой redirect Uri правильный и зарегистрированный, потому что я изменил свой веб-браузер по умолчанию с Edge на Explorer, а затем на Chrome, и каждый раз, когда вход в систему работал один раз (и возвращал токен), но затем бросал один и тот же ошибка. Ошибка скриптинга теперь появляется в любом из моих браузеров. Я проверил настройки безопасности и сценарии включены на всех.

Вот XAML:

<local:DropboxBrowser Grid.Row="0" Grid.Column="0"
                      AccessToken="{Binding AccessToken, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
                      UserId="{Binding UserId, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
                      Result="{Binding Result, UpdateSourceTrigger=PropertyChanged}" />

И ключевые части моего метода:

    private void WebBrowser_Navigating(object sender, NavigatingCancelEventArgs e)
    {
        if (!e.Uri.ToString().StartsWith(REDIRECT_URI, StringComparison.OrdinalIgnoreCase))
        {
            return;
        }

        try
        {
            OAuth2Response result = DropboxOAuth2Helper.ParseTokenFragment(e.Uri);
            if (result.State != _oauth2State)
            {
                return;
            }

            AccessToken = result.AccessToken;
            UserId = result.Uid;
            Result = true;
        }
        catch (ArgumentException ex)
        {
            Debug.WriteLine(ex.Message + ex.StackTrace);
        }
        finally
        {
            e.Cancel = true;
        }
    }

Я занимаюсь разработкой с архитектурой MVVM, но сейчас я сократил свой код до прямого примера из примера Dropbox - отсюда и ужасная смесь привязок и кода, но я разберусь с этим, как только получу аутентификация работает.

Кто-нибудь знает, что я тут не так делаю?

...