Я работаю над своим первым приложением для реагирования/уменьшения, и я не уверен, где я должен вызывать sessionStorage.setItem(). В настоящее время я сохраняю учетные данные пользователя из действия loginUserSuccess(), но я не уверен, что именно здесь я должен это делать. Кроме того, я использую fetch для выполнения запросов и хотел бы добавить authToken пользователя ко всем запросам. Я просматривал fetch-intercept, но не так много документации для изменения заголовков.
actions/loginActions.js
export function loginUser(user) {
return function(dispatch) {
return LoginApi.login(user).then(creds => {
dispatch(loginUserSuccess(creds));
}).catch(error => {
throw(error);
});
};
}
export function loginUserSuccess(creds) {
sessionStorage.setItem('credentials', JSON.stringify(creds));
return {
type: types.LOGIN_USER_SUCCESS,
state: creds
}
}
api/packageApi.js
class PackageApi {
// called on successful login
static getAllPackages() {
const request = new Request('/my/endpoint', {
method: 'GET',
headers: new Headers({
'AUTHORIZATION': `Bearer ${JSON.parse(sessionStorage.credentials).authToken}`
})
});
return fetch(request).then(response => {
return response.json();
}).catch(error => {
return error;
});
}
}
export default PackageApi;