Аутентификация подписки GraphQL с использованием AsyncStorage

Я пытаюсь использовать подписку в своем клиентском приложении для отправки Токен JWT и refreshToken на сервер с помощью WebSocketLink connectionParams. Но проблема в том, что мой токен и refreshToken сохраняются внутри AsynStorage, что требует от меня использования async await для получения значения. Когда я пытался использовать await, он отправлял undefined на сервер.

Вот код ниже:

// Create a WebSocket link:
const wsLink = new WebSocketLink({
    uri: wsUri,
    options: {
        reconnect: true,
        connectionParams: async () => {
            return {
                token: await AsyncStorage.getItem('token'),
                refreshToken: await AsyncStorage.getItem('refreshToken')
            }
        }
    }
});

Если я установлю ключ плана, он будет работать. Но мне нужно получить токены из хранилища Async с помощью await. Как я могу это сделать?

В последней версии 0.9.8subscriptions-transport-ws он по-прежнему не поддерживает возврат connectionParams. Но у него был запрос на перенос, связанный с этой проблемой, и вы можете сослаться на него github.com/apollographql/subscriptions-transport-ws/pull/348

tuan.tran 26.04.2018 06:21

@ TuấnTrầnDuy. Спасибо за ссылку. но он еще не был объединен. Могу ли я отредактировать код в моем node_module и проверить, может ли он заставить его работать?

Emmanuel 26.04.2018 11:57

Вы можете форкнуть и отредактировать его самостоятельно или просто изменить код SubscriptionClient.prototype.connect в файле client в node_modules.

tuan.tran 26.04.2018 12:01

Я просто попытался изменить файл сейчас, но то, что находится в запросе на перенос, является обычным кодом Js, но я нашел машинописный текст. И PR ссылается на src / client.ts, но я нашел в папке dist / client.js

Emmanuel 26.04.2018 12:23

Да, вы можете изменить dist/client.js, просто нашли SubscriptionClient.prototype.connect и отредактировать его, как это делает запрос на перенос. Но вам следует разветвить этот проект, отредактировать и построить для долгосрочного использования.

tuan.tran 26.04.2018 17:51

У меня это работает. Спасибо за помощь!

Emmanuel 26.04.2018 23:24
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
6
525
0

Другие вопросы по теме