मैं कुछ हफ्ते पहले सेल्स के साथ काम कर रहा हूं, मैं रेल से आया हूं और मेरे पास नोड.जे.एस. के साथ काम करने का कोई अनुभव नहीं है।Sails.js में jsonwebtoken का उपयोग कर वर्तमान उपयोगकर्ता को कैसे प्राप्त करें?
अब मैं jsonwebtoken का उपयोग करके एक मजबूत टोकन प्रमाणीकरण करने की कोशिश कर रहा हूं। https://github.com/auth0/node-jsonwebtoken
मैंने इस गाइड का पालन किया http://thesabbir.com/how-to-use-json-web-token-authentication-with-sails-js/ और सब ठीक काम किया। मैं साइन अप करने में सक्षम हूं, साइन इन करता हूं और फिर विभिन्न कार्यों के लिए टोकन का सही उपयोग करता हूं।
अब, कुछ क्रियाएं हैं जहां मैं लॉगिन उपयोगकर्ता, का उपयोग करना चाहूंगा जैसे current_user
सहायक। उदाहरण के लिए, जब कोई टिप्पणी बनाते हैं, तो यह टिप्पणी वर्तमान उपयोगकर्ता से संबंधित होनी चाहिए।
सब्बीर अहमद गाइड का उपयोग, isAuthorized.js नीति से 33 लाइन में टोकन डिक्रिप्ट हो जाता है, इसलिए मैं वहां से वर्तमान उपयोगकर्ता आईडी प्राप्त कर सकता हूं।
तो, मेरा सवाल यह है कि वर्तमान उपयोगकर्ता को प्राप्त करने का सबसे अच्छा तरीका क्या होना चाहिए और बाद में कुछ नियंत्रक में इसका उपयोग करने में सक्षम होना चाहिए? उदाहरण के लिए मैं कुछ ऐसा करने की कोशिश की:
# isAuthorized.js line 34, after getting decrypted token
User.findOne({id: token.id}).exec(function findOneCB(err, found){
currentUser = found;
});
लेकिन, इस रास्ते पर है, क्योंकि यह एक async कार्रवाई है मैं एक नियंत्रक में इस currentUser उपयोग नहीं कर सकते।
मैं वर्तमान उपयोगकर्ता को कुछ नियंत्रक में बाद में उपयोग करने में सक्षम होने के लिए प्रत्येक नियंत्रक में एक ही कोड दोहराए बिना, एक सहायक या शायद एक सेवा की तरह कुछ भी स्टोर करना चाहता हूं।