का उपयोग मैं इस पोस्ट पढ़ लिया है और एडब्ल्यूएस How do I use a Cognito token with API? पर जवाब और यह एक how to use AWS cognito with custom authentication to create temporary s3 upload security tokenमैं cognito का उपयोग कैसे करूँ विशुद्ध रूप से प्रमाणित करने के लिए S3 के लिए उपयोगकर्ताओं
मैं अभी तक स्पष्ट नहीं कर रहा हूँ वहाँ S3 हासिल करने के लिए एक सरल समाधान है कि क्या पहुंच।
मेरे पास एक मोबाइल क्लाइंट और node.js बैकएंड है। ग्राहक बैकएंड के साथ प्रमाणित करता है और मेरे बैकएंड को और कॉल के लिए एक jwt accesstoken प्राप्त करता है। अपने स्वयं के बैकएंड के साथ संचार के अलावा, उपयोगकर्ताओं को एस 3 से और फ़ाइलों को अपलोड और डाउनलोड करने में सक्षम होना चाहिए। मैं यह सुनिश्चित करने के लिए सबसे सरल समाधान की तलाश में हूं कि केवल मेरे उपयोगकर्ता जो मेरे बैकएंड के लिए वैध accesstoken है S3 पर अपलोड कर सकते हैं।
मैं कर सकता हूँ निम्नलिखित (यह इस ब्लॉग पोस्ट पर आधारित है http://blog.backspace.academy/2015/03/using-cognito-with-nodejs-part-2.html):
- ग्राहक अपने कस्टम के साथ प्रमाणित करता है बैकएंड Node.js और कस्टम मेरी बैकएंड
- मेरे Node.js बैकएंड से accesstoken प्राप्त CognitoID AWS temp उपयोगकर्ता प्रमाण-पत्र प्राप्त करता है। हालांकि, एडब्ल्यूएस दस्तावेज का कहना है कि हमें सत्र टोकन की भी आवश्यकता है (संभावित रूप से कॉग्निटोसिंक को कॉल करके), इसलिए मैं सत्र टोकन प्राप्त करने के लिए अपनी समर्थित आवश्यकताओं को भी मानता हूं।
- मेरा node.js बैकएंड क्लाइंट
- क्लाइंट के लिए उन temp क्रेडेंशियल प्लस सत्र टोकन को पास करता है क्लाइंट इन्हें क्रेडेंशियल्स + सत्र टोकन में गुजरने वाले एडब्ल्यूएस एसडीके के साथ S3 पर कॉल के लिए उपयोग करता है।
क्या मुझे कुछ याद आ रही है? क्या ऐसा करने का कोई आसान तरीका है? मुझे लगता है कि क्लाइंट को अपने स्वयं के कस्टम node.js उपयोगकर्ता को एडब्ल्यूएस/एस 3/कॉग्निटो से accesstoken पास करने का कोई तरीका नहीं है और S3/Cognito टोकन को अपने स्वयं के node.js एपीआई को कॉल करके प्रमाणित करता है जो इस टोकन को प्रमाणित कर सकता है।
स्कॉट, धन्यवाद, यह बहुत उपयोगी है। वास्तव में मेरे प्रोजेक्ट में वास्तव में क्या होता है कि उपयोगकर्ता (i) एफबी के माध्यम से पंजीकरण करते हैं, और फिर मेरे कस्टम अस्थायी और कस्टम रीफ्रेशेटेन को पारित कर दिया जाता है, (ii) उसके बाद कभी भी एफबी के माध्यम से लॉगिन नहीं होता है, लेकिन एक नया accesstoken प्राप्त करने के लिए refreshtoken का उपयोग करें - अगर वे ऐप को लॉगआउट या हटाते हैं और पुनः इंस्टॉल करते हैं। इसका मतलब है, केवल कॉग्निटो को एफबी को पारित करना एक विकल्प नहीं है। इसलिए, मैं अपने बैकएंड के माध्यम से GetOpenIdTokenForDeveloperIdentity को कॉल करता हूं और मोबाइल क्लाइंट को ओपनआईडी कनेक्ट टोकन वितरित करता हूं जो उसके बाद GetCredentialsForIdentity को कॉल करता है। सही है, है ना? – user753416
@ user753416 एफबी टोकन को फिर से ताज़ा करने में सक्षम नहीं होने के मामले में (क्योंकि उपयोगकर्ता एफबी के साथ फिर से लिख नहीं सकता है), आपके द्वारा वर्णित वर्कफ़्लो सही लगता है। यदि आप किसी और चीज में भाग लेते हैं तो SO पर एक और प्रश्न पोस्ट करने के लिए स्वतंत्र महसूस करें और हमें सहायता करने में खुशी होगी। –