【发布时间】: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