मेरे पास एक प्रतिक्रिया / रिडक्स एप्लिकेशन है जो एक एपीआई सर्वर से टोकन प्राप्त करता है। उपयोगकर्ता द्वारा प्रमाणित किए जाने के बाद, मैं सभी अक्षीय अनुरोध करना चाहता हूं कि एक प्राधिकरण हेडर के रूप में टोकन को मैन्युअल रूप से कार्रवाई में प्रत्येक अनुरोध के बिना संलग्न किया जाए। मैं प्रतिक्रिया / रिड्यूस करने के लिए काफी नया हूं और सर्वश्रेष्ठ दृष्टिकोण पर यकीन नहीं कर रहा हूं और Google पर कोई गुणवत्ता हिट नहीं पा रहा हूं।
यहाँ मेरा redux सेटअप है:
// actions.js
import axios from 'axios';
export function loginUser(props) {
const url = `https://api.mydomain.com/login/`;
const { email, password } = props;
const request = axios.post(url, { email, password });
return {
type: LOGIN_USER,
payload: request
};
}
export function fetchPages() {
/* here is where I'd like the header to be attached automatically if the user
has logged in */
const request = axios.get(PAGES_URL);
return {
type: FETCH_PAGES,
payload: request
};
}
// reducers.js
const initialState = {
isAuthenticated: false,
token: null
};
export default (state = initialState, action) => {
switch(action.type) {
case LOGIN_USER:
// here is where I believe I should be attaching the header to all axios requests.
return {
token: action.payload.data.key,
isAuthenticated: true
};
case LOGOUT_USER:
// i would remove the header from all axios requests here.
return initialState;
default:
return state;
}
}
मेरा टोकन Redux स्टोर में संग्रहीत है state.session.token
।
मैं थोड़ा आगे बढ़ने के लिए खो रहा हूँ। मैंने अपनी रूट डाइरेक्टरी में एक फाइल में एक axios इंस्टेंस बनाने की कोशिश की है और नोड_मॉड्यूल्स के बजाय इसे अपडेट / इम्पोर्ट / अपडेट करता हूं, लेकिन जब स्टेट्स बदलता है तो यह हेडर अटैच नहीं होता है। किसी भी प्रतिक्रिया / विचारों की बहुत सराहना की जाती है, धन्यवाद।