включение ra-cognito в реакцию-администратор с проблемой обещания ra-data-json-server - PullRequest
0 голосов
/ 23 сентября 2019

Я использую собственную реализацию аутентификации вact-admin (с cognito), но я хочу переключиться на ra-cognito.Однако я не могу понять, как реализовать обещание AWS Amplify Auth.currentSession () внутри httpClient ra-data-json-server.

Мой старый / текущий код, который работает нормально:

import jsonServerProvider from 'ra-data-json-server';
const httpClient = (url, options = {}) => {
    if (!options.headers) {
        options.headers = new Headers({Accept: 'application/json'});
    }

    // cognitoIdToken item set on authentication 
    const cognitoIdToken = localStorage.getItem('cognitoIdToken');
    options.headers.set('Authorization', cognitoIdToken);

    return fetchUtils.fetchJson(url, options);
}

Мой новый код:

import jsonServerProvider from 'ra-data-json-server';
const httpClient = (url, options = {}) => {
    if (!options.headers) {
        options.headers = new Headers({Accept: 'application/json'});
    }

    return Auth.currentSession()
        .then(data => {
            options.headers.set('Authorization', data);
            console.log('Authorization set...', data);
        })
       .then(fetchUtils.fetchJson(url, options));
}

Новый код явно неверен, но я не могу понять, включить ли обещание Auth.currentSession в функцию httpClient.

1 Ответ

0 голосов
/ 23 сентября 2019

Забыл вернуть результат первого обещания упс ...

import jsonServerProvider from 'ra-data-json-server';
const httpClient = (url, options = {}) => {
    if (!options.headers) {
        options.headers = new Headers({Accept: 'application/json'});
    }

    return Auth.currentSession()
        .then(data => {
            options.headers.set('Authorization', data);
            return options;
        })
        .then(options => 
            return fetchUtils.fetchJson(url, options)
        );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...