Я переключился с apollo-boost
на apollo-client
, и я проверил документы, и я обнаружил, что они устанавливают токен через localStorage
, но проблема в том, что у меня нет токена в моем локальном хранилище единственный токен, который у меня есть, находится в браузере cookies
, поэтому в основном я ищу способ передать токен из файлов cookie в apollo-client
const httpLink = createUploadLink({
uri: 'http://localhost:9999',
credentials: 'include'
});
const authMiddleware = new ApolloLink((operation, forward) => {
// Retrieve the authorization token from local storage.
const token = localStorage.getItem('token');
console.log(token); //undefined
// Use the setContext method to set the HTTP headers.
operation.setContext({
headers: {
authorization: token ? `Bearer ${token}` : ''
}
});
// Call the next link in the middleware chain.
return forward(operation);
});
const client = new ApolloClient({
// link: authLink.concat(httpLink),
link: concat(authMiddleware, httpLink),
cache: new InMemoryCache()
});
1
Salah Eddin Berriani
25 Окт 2019 в 21:23
1 ответ
Вы можете выполнить следующие действия по извлечению данных из файлов cookie: Получить файл cookie с помощью реакции
Итак, если вы используете js-cookie, ваша функция authMiddleware будет выглядеть так:
import Cookies from 'js-cookie';
const authMiddleware = new ApolloLink((operation, forward) => {
// Retrieve the authorization token from browser cookies.
const token = Cookies.get('token');
console.log(token);
// Use the setContext method to set the HTTP headers.
operation.setContext({
headers: {
authorization: token ? `Bearer ${token}` : ''
}
});
// Call the next link in the middleware chain.
return forward(operation);
});
0
Mitchell
25 Окт 2019 в 22:18
Похожие вопросы
Связанные вопросы
Новые вопросы
reactjs
React — это библиотека JavaScript для создания пользовательских интерфейсов. Он использует декларативную парадигму на основе компонентов и стремится быть эффективным и гибким.
js-cookie
не может читать файлы cookie httpOnly, я также получаю неопределенное значение, если я хочу прочитать файл cookie, мне придется избавиться от флага httpOnly, и это проблема.