【问题标题】:incorporating ra-cognito in react-admin with ra-data-json-server promise problem在带有 ra-data-json-server 承诺问题的 react-admin 中合并 ra-cognito
【发布时间】:2020-01-23 07:18:36
【问题描述】:

我一直在 react-admin 中使用自己的身份验证实现(使用 cognito),但我想切换到 ra-cognito。但是我不知道如何在 ra-data-json-server 的 httpClient 中实现 AWS Amplify 的 Auth.currentSession() 承诺。

我的旧/当前代码运行良好:

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 函数中。

【问题讨论】:

    标签: promise aws-amplify react-admin


    【解决方案1】:

    忘记返回第一个promise的结果哎呀……

    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)
            );
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多