मैं redux के साथ प्रमाणीकरण के साथ कुछ समस्या हो रही है और रूटर प्रतिक्रिया और कैसे सबसे अच्छा मेरी समस्या को हल करने पर कुछ स्पष्टीकरण के लिए उम्मीद कर रहा हूँ।यूनिवर्सल प्रमाणीकरण Redux और प्रतिक्रिया रूटर
export const loginUser = (creds) => {
return dispatch => {
dispatch(requestLogin(creds))
return fetch('http://127.0.0.1:4000/api/login', {
...
})
.then(res => {
dispatch(receiveLogin())
browserHistory.push('/admin')
...
})
...
}
}
receiveLogin कार्रवाई को सही पर राज्य में अपडेट हो जाता है isAuthenticated झंडा:
मैं एक लॉगिन घटक है कि जब प्रस्तुत निम्नलिखित कार्रवाई डिस्पैच की है। मेरे संरक्षित मार्ग पर निम्नलिखित हुक है:
export default (state) => {
return {
path: '/',
component: App,
childRoutes: [
{
path: 'protected',
component: Protected,
...
onEnter(nextState, replaceState) {
const loggedIn = //check state.isAuthenticated
if (!loggedIn) {
replaceState(null, 'login')
}
}
}
]
}
}
जैसा कि आप देख सकते हैं, मैं राज्य को तर्क के रूप में पास कर रहा हूं। यह मुझे सर्वर के साथ-साथ क्लाइंट पर प्रारंभिक स्थिति तक पहुंच प्रदान करता है। हालांकि, मेरे लॉगिन कार्रवाई के बाद, स्पष्ट रूप से ऑनर हुक पर भी प्रारंभिक स्थिति का उपयोग किया जाएगा।
क्या मैं जानना चाहता हूँ सबसे अच्छा तरीका है के बाद isAuthenticated झंडा अद्यतन किया जाता है वर्तमान स्थिति हो और बजाय का उपयोग है कि मेरे onEnter हुक में है। या, मेरा दृष्टिकोण पूरी तरह से त्रुटिपूर्ण है और क्या मैं इसे पूरी तरह से अलग तरीके से कर रहा हूं?
मेरे पास एंड्रयू के समान समस्या है, लेकिन मैं एचओसी का उपयोग कर रहा हूं। मेरी समस्या यह है कि उपयोगकर्ता लॉगिन नहीं कर सकता है, क्योंकि यह सर्वर से प्रतिक्रिया वापस आने से पहले हमेशा मौजूदा स्थिति की जांच कर रहा है - और इसका मतलब है कि उपयोगकर्ता लॉगिन नहीं कर सकता है। रेडक्स स्टोर में चेक थ्रॉटल करने का कोई तरीका है? – Abdi
@Abdi हाँ मैं यहां एक समान मुद्दे पर आया हूं: https://github.com/mjrussell/redux-auth-wrapper/issues/30। मुझे लगता है कि समाधान केवल आपके रेडक्स स्टोर (isUserFetched) में एक झंडा जोड़ना है या ऐसा कुछ और यदि सही है - पुनर्निर्देशन करने के बजाय, लपेटे हुए घटक के बजाय एचओसी में एक वैकल्पिक पृष्ठ दिखाएं। (एक लोडिंग पेज की तरह)। मैं इसे जल्द ही अपनी लाइब्रेरी में जोड़ना चाहता हूं, अभी तक समय नहीं मिला है – mjrussell
मैंने वास्तव में मध्य पृष्ठ में किसी भी प्रस्ताव के बिना समस्या को ठीक करने में कामयाब रहा है। मैंने रेडक्स-थंक का उपयोग किया - जो क्रिया को हल करने के लिए प्रतीक्षा करता है और फिर मैं राज्य को अद्यतन करता हूं और फिर रीडायरेक्ट करता हूं। उम्मीद है कि यह समझ में आता है, लेकिन यदि आपके पास एक समान समस्या है तो निश्चित रूप से [redux-thunk] (https://github.com/gaearon/redux-thunk) देखें। मुझे यह रेपो बहुत उपयोगी पाया गया क्योंकि यह वही कर रहा था जिसे मैं कार्यान्वित करना चाहता था [प्रमाणीकरण के साथ एचओसी] (https://github.com/joshgeller/react-redux-jwt-auth-example) – Abdi