Expo-Auth-Session никогда не выполняет обещания с входом в систему PixelfedJavascript

Форум по Javascript
Ответить
Anonymous
 Expo-Auth-Session никогда не выполняет обещания с входом в систему Pixelfed

Сообщение Anonymous »

Я пытаюсь войти в экземпляр Pixelfed, используя пакет expo-auth-session. Я дохожу до всплывающего окна с кодом, отображаемым после того, как я авторизовал свое приложение во всплывающем окне. Однако обещание так и не выполняется. Если я закрою окно, я перейду к части обещания Dismiss, но на этом все.

Код: Выделить всё

import React, { useState, useEffect } from 'react';
import { View, ActivityIndicator, Platform, Button } from 'react-native';
import { WebView } from 'react-native-webview';
import * as WebBrowser from 'expo-web-browser';
import * as AuthSession from 'expo-auth-session';
import * as Linking from "expo-linking"

export default function OAuthLoginScreen({ route, navigation }) {
const [syncRunning, setSyncRunning] = useState(false);

const {
serverUrl,
authUrl,
tokenUrl,
tmpRedirectUri,
clientId,
scopes,
handleAuth
} = route.params;

const discovery = {
authorizationEndpoint: authUrl,
tokenEndpoint: tokenUrl
};

if(tmpRedirectUri === undefined || tmpRedirectUri === null){
redirectUri = AuthSession.makeRedirectUri({
scheme: 'myapp',
});
} else {
redirectUri = tmpRedirectUri;
}

const options = {
clientId: clientId,
redirectUri: redirectUri,
scopes: scopes
};

const [request, response, promptAsync] = AuthSession.useAuthRequest(
options,
discovery
);

if(request && !syncRunning){
setSyncRunning(true)
promptAsync()
}

useEffect(() => {
if (response?.type === 'success') {
const { code } = response.params;
handleAuth(serverUrl, result.url, navigation);
}
}, [response]);

return (



);

}
У меня была такая же проблема, когда я пытался реализовать ее с помощью пакета expo-web-browser. Правда ли, что необходим сервер разработки HTTPS? Если да, то как этого можно добиться с помощью упаковщика Metro? Флаг --https не открывает сеанс https. Я не хочу возвращаться к веб-пакету, так как он, кажется, устарел.
Когда тот же код используется с потоком входа в систему oauth в Instagram, он работает так же, как так и должно быть.

Подробнее здесь: https://stackoverflow.com/questions/793 ... lfed-login
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»