Ошибка входа в Instagram (отключенные файлы cookie) - React Native WebView - PullRequest
0 голосов
/ 07 мая 2018

Мое приложение использует Instagram OAuth, оно открывает страницу входа в Instagram с этого URL:

"https://www.instagram.com/oauth/authorize/client_id=${clientId}&redirect_uri=${redirectUrl}&response_type=${responseType}&scope=${scopes.join('+')}"

Здесь пользователь может ввести свое имя пользователя и пароль и нажать кнопку входа. Однако при первом входе в Instagram вылетает ошибка. Во второй раз, когда открывается ссылка, она содержит данные о пользователях и перемещает пользователя на домашний экран приложения.

Error

Эта страница не может быть загружена. Если в вашем браузере отключены файлы cookie или вы просматриваете в частном режиме, попробуйте включить файлы cookie или отключить частный режим, а затем повторите попытку.

Instagram Error - Cookies are Disabled

Вот функция рендеринга webView;

render() {
    const { uri } = this.state;

    if(this.state.loading){
        return <SpinnerComponent size={'small'}/>;
    }

    return (
        <View style={{ flex: 1 }}>
            <WebView 
                startInLoadingState
                onNavigationStateChange={this.onNavigationStateChange.bind(this)}
                source={{ uri }}
                style={{flex: 1}}
            />
        </View>
    );
}

Примечание

Я использую пакет Reaction-native-cookie для удаления файлов cookie, принадлежащих Instagram, когда пользователь выходит из приложения. Это, скорее всего, проблема. Однако я не могу удалить этот пакет из моей базы кода, потому что это необходимая часть процедуры выхода из системы. Чтобы противостоять этому, я реализовал приведенный ниже код в методе LifeCycle «componentDidMount» WebView, чтобы получать куки с сайта. Но это не помогает моему делу.

* +1034 * Cookie.get (https://www.instagram.com); * * тысяча тридцать шесть

Вот вопрос о потоке стека, в котором возникла та же проблема. Однако данное решение дано в Obj-C или Swift, о которых я ничего не знаю. Я не смог найти решение для React Native.

1 Ответ

0 голосов
/ 28 мая 2018

При аутентификации через веб-приложение ... проблема связана с платформой instagram. Я обнаружил, что проблема возникает только в том случае, если в вашем браузере не установлен файл cookie instagram "ig_cb". Это устанавливается, когда вы принимаете политику использования файлов cookie на сайте instagram.com. Обходной путь - войти в Instagram и принять политику использования файлов cookie, а затем вернуться в свой социальный аккаунт и продолжить.

Будучи блоком в процессе входа в систему Instagram ... Я думаю, что нет никакого определенного решения, кроме как ждать исправления ошибки в Instagram.

...